在没有活动数据库连接的情况下使用mysql_real_escape_string时防止出错

时间:2013-12-05 11:44:36

标签: php mysql escaping mysql-real-escape-string

我继承了遗留系统,它包含了这个功能,该功能在整个站点的许多地方(前端和后端)使用。

function clean_text_for_db($str) {
    $str = trim($str);
    $str = stripslashes($str);
    $str = mysql_real_escape_string($str);
    return $str;
}

它通常工作得很好,但是当数据库在一段时间内不可用时,我注意到我的apache错误日志中出现了一堆错误。错误是这些:

  

mysql_real_escape_string()[function.mysql-real-escape-string]:   无法建立指向服务器的链接

     

function.mysql-real-escape-string]:无法连接到本地MySQL   服务器通过套接字'/var/lib/mysql/mysql.sock'

我理解为什么错误已经发生,但是我不确定如何处理它以防止我的日志在这种情况再次发生时受到如此大的打击。考虑到函数被广泛使用,我认为在mysql_ping之前mysql_real_escape_string可能是一个坏主意,因为这意味着每次调用函数时都会这样做,99.9999%的时间这是不必要的。< / p>

1 个答案:

答案 0 :(得分:0)

那是真的简单。只需摆脱这个“clean_text_for_db()”函数。

然后开始使用PDO prepared statements