mysql版本引起:Warning: mysqli_query() expects parameter 1 to be mysqli, boolean given in

如果你可能因mysql版本,遇到类似问题,请看下文

以下是用php连接本地服务器+数据库,并试图查表 

$link = mysqli_connect('localhost', 'root', 'xxxx')or
die("Could not connect: " . mysqli_error());    //连接本地mysql

$conn = mysqli_select_db( $link,数据库名) or
die("no database ");
echo $conn;                //打印结果为1
mysqli_query($conn,"SET NAMES 'UTF8'" ) ;            //报标题错误

$sql = "SELECT * FROM orderdata";
$result = mysqli_query($conn, $sql);                //报标题错误
	
if (!$result) {
    printf("Error: %s\n", mysqli_error($conn));       //报类似标题错误
    exit();
}

现在的问题,某些参数不是他应该的数据类型,也就是说,有些操作并没有成功,返回值不对!经查:

  1. $conn 值为1
  2. $result 无值
  3. mysqli_error($conn)打印不出东西

php改版后真的有点懵……

  1. mysqli_connect(host,username,password,dbname,port,socket);      参数均为可选
  2. mysqli_select_db(connection,dbname)参数应该是 库名 在后。此函数用于修改连接的默认数据库(划重点)
  3. mysqli_query(connection,query,resultmode)失败时返回 FALSE,通过mysqli_query() 成功执行SELECT, SHOW, DESCRIBE或 EXPLAIN查询会返回一个mysqli_result对象,其他查询则返回TRUE

改成以下:

	//连接MYSQL数据库
$conn = mysqli_connect(localhost, root, 密码xxxx,数据库名xxxx)or trigger_error(mysqli_error(),E_USER_ERROR);
mysqli_query($conn,"SET NAMES 'UTF8'" ) ;

$sql = "SELECT * FROM orderdata";
$result = mysqli_query($conn, $sql);
	
if (!$result) {
    printf("Error: %s\n", mysqli_error($conn));
    exit();
}

也就是说 我把 $link = mysqli_connect('localhost', 'root', 'xxxx') 和 $conn = mysqli_select_db( $link,数据库名)

改成 $conn = mysqli_connect(localhost, root, 密码xxxx,数据库名xxxx)

就行了

仍是初学者,如果不对,烦请指正


代码千万条,基础第一条,学习不努力,码农两行泪

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值