mysqli-> real_escape_string

时间:2011-05-02 07:09:48

标签: php

我遇到了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

1 个答案:

答案 0 :(得分:2)

连接是否正确打开?我假设你有像

这样的东西
self::$link = new mysqli(...);

如果它无法连接,它不会返回false,而是返回一个对象,所以在任何情况下,条件总是会计算为true

if (self::$link)
{
     echo "I'm always here!"
}

mysqli::__construct

中的说明尝试mysqli_connect_error()self::$link->connect_error()(取决于您的php版本)