簡體   English   中英

mysql_real_escape_string問題?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM