Warning: mysqli_query() expects parameter 1 to be mysqli, null given in /var/www/html/php..解决方案

完整错误提示:Warning: mysqli_query() expects parameter 1 to be mysqli, null given in /var/www/html/php/include/function.php on line 9
在错误消息中明确提出,mysqli_query第一个参数是一个mysqli资源。在我的例子中,这个参数称为$conn,但它保存一个空值。一个适当的mysqli资源通常是连接数据库的利用mysqli_connect获得。

第9行代码如下:
$result = mysqli_query($conn,$sql);  


 出错处的完整代码段:

include "db.php";  
  
function show_mark($table)  
{    
    $sql = "select max(ids_id),time from ids_log";  
    $result = mysqli_query($conn,$sql);  
    $row = mysqli_fetch_assoc($result);  
     ......  

$conn在db.php中定义如下


$conn = mysqli_connect($dbhost, $dbuser, $dbpass,'ids');
if(mysqli_connect_errno($conn) )
{
   echo "please try again!";
   echo "Could not connect: ". mysqli_connect_error();
   exit;
}


没有输出提示错误说明数据库链接是成功的,$conn不应该返回null的,折腾一整天解决方案如下:
$conn在GLOBAL范围内不能从函数直接调用,需要将
$result = mysqli_query($conn,$sql);
替换为$result = mysqli_query($GLOBALS['conn'],$sql);

  • 9
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 这个错误提示指出mysqli_query()函数的第一个参数需要是一个mysqli对象,但实际传递给函数的参数值为null。可能原因是在创建mysqli对象时出现错误,或者在传递mysqli对象时出现问题。需要检查代码并确保mysqli对象被正确地创建和传递。 ### 回答2: 错误说明:mysqli_query()函数期望的第一个参数是一个mysqli对象,但是实际传入的是null。 这个错误提示通常出现在使用mysqli_query()函数时,如果在函数调用时没有提供一个mysqli对象作为第一个参数,就会出现这个错误提示。原因可能是数据连接失败或者没有建立一个有效的mysqli对象。 如果没有正确建立数据连接,mysqli_connect()函数将返回null并且不会返回一个有效的mysqli对象。如果调用mysqli_query()函数时,将mysqli_connect()返回的null参数传递给函数,就会遇到这个错误提示。 另一个原因可能是没有正确传递一个有效的mysqli对象作为第一个参数。这可能是因为在调用mysqli_query()函数之前没有有效地建立一个mysqli连接,或者在连接期间发生了错误,导致mysqli对象为null。 要解决这个错误,可以检查mysqli连接是否正确地建立,并且mysqli_query()函数是否正确使用了mysqli对象作为第一个参数。如果mysqli对象为null,则需重新建立连接,或者确认连接期间是否发生了错误,调用mysqli_connect_errno()函数来获取连接错误信息。 总之,如果遇到mysqli_query() expects parameter 1 to be mysqlinull given in的错误提示,需要检查mysqli连接是否正确创建,并且正确传递mysqli对象作为第一个参数。 ### 回答3: mysqli_query()函数是PHP中用来执行MySQL查询的一个内置函数,它需要传入两个参数:MySQL数据库连接对象和需要执行的SQL查询语句。而这个错误信息"mysqli_query() expects parameter 1 to be mysqlinull given in"则是由于第一个参数错误导致的。 在这个错误信息中,"expects parameter 1 to be mysqli"表示需要传入的第一个参数应该是一个有效的MySQL链接对象,而"null given in"则表示实际上传入了一个null值。也就是说,函数在执行时找不到有效的MySQL数据库链接对象,因此返回了错误信息。 这个错误通常有两种可能的原因: 1. 没有成功连接到MySQL数据库。在使用mysqli_query()函数前,必须首先建立与MySQL数据库的连接。如果连接失败或者没有建立连接,则mysqli_query()函数无法执行,会返回这个错误信息。正确的连接MySQL数据库的代码如下: $link = mysqli_connect("localhost", "my_user", "my_password", "my_db"); 如果连接不成功,可以尝试检查MySQL服务器是否已经启动并且账号密码是否正确。 2. 执行mysqli_connect()函数时没有正确保存连接对象。如下代码中$mysqli变量必须被正确初始化: $mysqli = mysqli_connect("localhost", "my_user", "my_password", "my_db"); // do some stuff mysqli_query($mysqli, "SELECT * FROM my_table"); 如果在后面的代码块中没有正确保存$mysqli变量,就无法在mysqli_query()中正确传入MySQL链接对象,从而会返回这个错误信息。 总之,要解决这个错误信息,需要确保正确建立MySQL数据库连接,并且在调用mysqli_query()函数时正确传入MySQL链接对象作为第一个参数。这样才能保证能够成功执行MySQL查询并获得正确结果。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值