我遇到了real_escape_string
的问题代码:
function mysql_escape($str){
echo '<pre>';
var_dump(self::$link);
echo '</pre>';
return self::$link->real_escape_string($str);
}
输出:
object(mysqli)#1 (17) {
["affected_rows"]=>
NULL
["client_info"]=>
NULL
["client_version"]=>
int(50051)
["connect_errno"]=>
int(0)
["connect_error"]=>
NULL
["errno"]=>
NULL
["error"]=>
NULL
["field_count"]=>
NULL
["host_info"]=>
NULL
["info"]=>
NULL
["insert_id"]=>
NULL
["server_info"]=>
NULL
["server_version"]=>
NULL
["sqlstate"]=>
NULL
["protocol_version"]=>
NULL
["thread_id"]=>
NULL
["warning_count"]=>
NULL
}
Warning: mysqli::real_escape_string() [mysqli.real-escape-string]: Couldn't fetch mysqli in /usr/www/users/.../class/class.Data.php on line 188
答案 0 :(得分:2)
连接是否正确打开?我假设你有像
这样的东西self::$link = new mysqli(...);
如果它无法连接,它不会返回false
,而是返回一个对象,所以在任何情况下,条件总是会计算为true
:
if (self::$link)
{
echo "I'm always here!"
}
中的说明尝试mysqli_connect_error()
或self::$link->connect_error()
(取决于您的php版本)