You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

网站转用mysqli后出现mysqli_query()参数错误,求助排查

排查 mysqli_query() 参数为 null 的错误

这个错误的核心原因有两个,咱们一步步来解决:

警告里说「parameter 1 to be mysqli, null given」,意思是你传给mysqli_query()的第一个参数$link是null——也就是你还没成功建立数据库连接,或者连接代码出了问题。

你需要确保在执行这段查询代码之前,已经正确创建了mysqli连接,并且把连接对象赋值给了$link。比如标准的连接代码应该是这样的:

// 替换成你的数据库信息
$host = 'localhost';
$user = '你的数据库用户名';
$pass = '你的数据库密码';
$dbname = '你的数据库名';

// 建立连接
$link = mysqli_connect($host, $user, $pass, $dbname);

// 检查连接是否成功
if (!$link) {
    die('数据库连接失败: ' . mysqli_connect_error());
}

把这段代码放在你的查询代码之前,确认连接没有报错。如果连接失败,$link就会是null,直接导致后续的查询报错。

2. SQL语句变量引用错误

看你的代码:

$MySQLi = "SELECT configValLong FROM storeadmin WHERE configVar = 'controlRec' AND adminType = 'C' ";
$rs = mysqli_query($link,MySQLi) or die(mysqli_connect_error());

这里调用mysqli_query()的时候,第二个参数写的是MySQLi(没有$符号),PHP会把它当成一个未定义的常量,而不是你之前定义的$MySQLi变量。这会导致SQL语句无效,同时也会加重连接参数的问题。

修复成这样:

$rs = mysqli_query($link, $MySQLi) or die('查询错误: ' . mysqli_error($link));

另外,这里的错误处理用mysqli_connect_error()不太合适,换成mysqli_error($link)能获取到查询相关的具体错误信息,更方便排查问题。

额外的优化建议

  • 尽量别用$MySQLi这种和扩展同名的变量名,换成$sqlControlRec这类有意义的名字,避免混淆。
  • 开发阶段开启PHP的错误提示:
error_reporting(E_ALL);
ini_set('display_errors', 1);

这样能看到更多细节错误,帮你更快定位问题。

内容的提问来源于stack exchange,提问作者Trixx

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.20 10:28:50