这是第一次发生这种情况,而且非常奇怪。
我们多年来一直在使用这个功能,我们在这个网站的任何地方都使用它...虽然网站的一个特定部分 - 它导致mySQL错误。
function noescape($str) {
$noescape = mysql_real_escape_string($str);
return $noescape;
}
$email = noescape($_POST['email']);
mysql_query("INSERT INTO `contact` (`email`) VALUES('" . $email . "') ", $database) or die(mysql_error());
是的,$database
已定义且是正确的连接信息 - 它用于网站的其他区域。
错误:
警告:mysql_real_escape_string() [function.mysql-real-escape-string]:无法链接到服务器 在第27行的/home/user/public_html/config.php中建立
事实上,错误发生在这一行:
$email = noescape($_POST['email']);
这与查询无关。
我发现了这个:http://www.resourcebookingpro.com/index.php?option=com_kunena&Itemid=66&func=view&catid=3&id=841#844
有什么问题?
答案 0 :(得分:1)
页面上方的内容使用相同的连接,并且工作正常......
好吧,您必须检查此行上方的代码,以查看连接的关闭位置。
答案 1 :(得分:-2)
我认为你必须正确指定mysql链接(如评论中所述)
function noescape($str) {
global $database;
$noescape = mysql_real_escape_string($str, $database);
return $noescape;
}
$email = noescape($_POST['email']);
mysql_query("INSERT INTO `contact` (`email`) VALUES('" . $email . "') ", $database) or die(mysql_error());
答案 2 :(得分:-2)
真正的转义字符串方法确实依赖于数据库连接。我相信$ database是应用程序的全局数据库,所以只需在noescape方法中输入一个if语句来测试它的null是否如此:
if($database)
{
$noescape = mysql_real_escape_string($str, $database);
return $noescape;
}
我同意其他人的想法;但我认为你应该检查是否为null。
祝你好运