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

登录网站遇mysqli_real_escape_string两类参数报错,求技术修复

搞定PHP警告,恢复网站登录

嘿,我来帮你解决这两个烦人的PHP警告问题,让你能正常登录网站。先给你拆解清楚问题根源,再给你一步步的修复指导,不用懂编程也能跟着做。

错误根源拆解

你遇到的两个警告都和mysqli_real_escape_string()这个函数有关:

  • mysqli_real_escape_string() expects parameter 1 to be mysqli, null given:意思是你调用这个函数时,第一个参数(数据库连接对象)是空的,根本没传有效的连接。
  • mysqli_real_escape_string() expects exactly 2 parameters, 1 given:这个函数必须传2个参数(连接对象+要处理的字符串),但你只传了1个。

再看你给的client_config.php代码,发现你大部分用的是旧的mysql_*系列函数(比如mysql_connect、mysql_query),但在第147行却用了新的mysqli_*函数——这俩扩展完全不兼容,这就是核心问题!

一步步修复(超简单)

第一步:找到第147行的错误代码

打开client_config.php,定位到第147行,你会看到类似这样的代码:

// 要么是只传了一个字符串
$xxx = mysqli_real_escape_string("要处理的内容");
// 要么是传了个空的连接
$xxx = mysqli_real_escape_string(null, "要处理的内容");

第二步:替换成匹配你现有代码的函数

因为你的代码全是用mysql_*系列,直接把mysqli_real_escape_string换成mysql_real_escape_string就行——这个旧函数只需要传要处理的字符串,它会自动用你之前创建的数据库连接:

// 把原来的代码改成这样(把"要处理的内容"换成你原来的变量名)
$xxx = mysql_real_escape_string("要处理的内容");

第三步:验证修复

保存修改后的文件,然后去登录网站,这两个警告应该就消失了,你也能正常登录了。

额外安全提醒(可选)

mysql_*系列函数已经被PHP官方废弃很多年了,安全性和兼容性都很差。如果之后你有精力,建议把整个代码里的mysql_*函数都换成mysqli_*的面向对象写法,比如:

  1. 把数据库连接代码改成:
// 替换原来的mysql_connect和mysql_select_db
$connect = new mysqli($GLOBALdatabase_cf['host'], $GLOBALdatabase_cf['username'], $GLOBALdatabase_cf['password'], $GLOBALdatabase_cf['database']);
if ($connect->connect_error) {
    die("连接失败:" . $connect->connect_error);
}
  1. 把mysql_query($sql)改成$connect->query($sql),mysql_fetch_row($result)改成$result->fetch_row(),以此类推。

不过这个需要改多处代码,先做前面的两步就能快速解决登录问题啦。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.28 07:21:46