[英]mysql_real_escape_string problem?
這是有史以來第一次,而且真的很奇怪。
我們已經使用此功能多年,並且在此站點的任何地方都使用此函數。雖然該站點的一個特定部分-它導致了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
怎么了??
該頁面上方的內容正在使用相同的連接,並且工作正常……
好吧,您必須檢查此行上方的代碼以查看連接在何處關閉。
我認為您必須正確指定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());
真正的轉義字符串方法確實依賴於數據庫連接。 我相信$ database對於應用程序是全局的,因此只需將if語句放在noescape方法中以測試其null是否是這樣的:
if($database)
{
$noescape = mysql_real_escape_string($str, $database);
return $noescape;
}
我同意其他人的想法; 但我確實認為您應該檢查null。
祝好運
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.