Warning: mysqli_query() expects parameter 1 to be mysqli怎么解决啊

Warning: mysqli_query() expects parameter 1 to be mysqli怎么解决啊,第1张

即然你是用类封装mysql *** 作,那应该把所有 *** 作都放到类中!

如果实在要这么做,

那给你改一下试试行不行

class

mysqlis{

private

$host

private

$name

private

$pass

private

$sqlname

public

$Conn

function

__construct($host,$name,$password,$sqlname){

$this->host=$host

$this->name=$name

$this->pass=$pass

$this->sqlname=$sqlname

$this->connect()

}

function

connect(){

$this

->

Conn

=

mysqli_connect($this->host,$this->name,$this->pass,$this->sqlname)

or

die("数据库连接错误")

}

}

$mysql=new

mysqlis("localhost","dafddf","dfdfgfg","test")

$sql="select

*

from

archives

where

title

like

'%说说%'"

$query=mysqli_query($mysql

->

Conn,

$sql)?>你这出现错误,

是因为,

msyqli_query()函数的第一个参数,

必须是msyqli_connect()函数 *** 作成功后返回的数据库连接标识,

很明显,

你这个$msyql只是实例化后的class

mysqlis这个类本身,

并不是数据库连接返回的标识,

那当然无法query查询!

mysqli比不msyql函数,

mysql函数是可以省略数据库连接标识的,

默认为上一个连接,

而mysqli函数不行,

必须提供这个参数!

大概的形式是这样的:

下面还是以实例来说明,要不然不好理解,新建两张表,一张是商品表,另外一张是商品的评论表

商品表:

评论表:

然后插入一些数据:

下面我们用子查询的方式来查出商品的信息以及每个商品的评论数量

查询结果:

对于这种查询,可以分成两部来理解,首先忽略整个select子查询,查出商品表中的数据。

在结果字段中使用子查询的关键两点:

1.子查询只能返回一条数据,如果子查询返回多条数据则会出错。

2.每一条select子查询只能查询一个字段。

使用

MySQL FEDERATED 存储引擎 ;

可以先使用show engines 命令查看数据库su是否已支持FEDERATED引擎

以下为转帖并节选:

Support 的值有以下几个:

YES 支持并开启

DEFAULT 支持并开启, 并且为默认引擎

NO 不支持

DISABLED 支持,但未开启

使用FEDERATED建表语句如下:

1

CREATE TABLE (......) ENGINE =FEDERATED CONNECTION='mysql://[name]:[pass]@[location]:[port]/[db-name]/[table-name]'

需要注意的几点:

1. 本地的表结构必须与远程的完全一样。

2.远程数据库目前仅限MySQL

3.不支持事务

4.不支持表结构修改


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/6214536.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-03-18
下一篇 2023-03-18

发表评论

登录后才能评论

评论列表(0条)

保存