2016-10-26 53 views
0

我該如何將下面的字符串轉換爲最新的mysqli?mysqli_real_escape_string()轉換幫助

for ($i = 0; $i < $num; $i++) { 
      if ($i == 0) 
       $nameCriteria .= " IN ('".mysql_escape_string($searchInfo->nameTokens[$i])."'"; 
      else 
       $nameCriteria .= ",'".mysql_escape_string($searchInfo->nameTokens[$i])."'"; 
     } 

我試過下面的修復,但不起作用。

for ($i = 0; $i < $num; $i++) { 
      if ($i == 0) 
       $nameCriteria .= " IN ('".((isset($GLOBALS["___mysqli_ston"]) && is_object($GLOBALS["___mysqli_ston"])) ? mysqli_real_escape_string($GLOBALS["___mysqli_ston"], $searchInfo->nameTokens[$i]) : ((trigger_error("Does not Work!", E_USER_ERROR)) ? "" : ""))."'"; 
      else 
       $nameCriteria .= ",'".((isset($GLOBALS["___mysqli_ston"]) && is_object($GLOBALS["___mysqli_ston"])) ? mysqli_real_escape_string($GLOBALS["___mysqli_ston"], $searchInfo->nameTokens[$i]) : ((trigger_error("Does not Work!.", E_USER_ERROR)) ? "" : ""))."'"; 
     } 

我還試圖用這個,但無法正常工作或

for ($i = 0; $i < $num; $i++) { 
     if ($i == 0) 
      $nameCriteria .= " IN ('".mysqli__real_escape_string($searchInfo->nameTokens[$i])."'"; 
     else 
      $nameCriteria .= ",'".mysqli__real_escape_string($searchInfo->nameTokens[$i])."'"; 
    } 

任何幫助將不勝感激,我知道還有其他一些類似的問題,但沒有真正幫助指南我得到這個字符串固定從原始源項目。

+0

因爲你不能只是堅持在功能名稱中我並期望它的工作如圖所示[文件]中(http://php.net/手冊/ en/mysqli.real-escape-string.php)也有一個變化的論點.....爲什麼今天我一直在看人們一遍又一遍地犯同樣的愚蠢錯誤 –

+0

需要添加linnk到你的'mysqli'實例在參數中。另外,出於某種原因,您的最終嘗試不正確地具有雙下劃線。 – Luke

回答

0

你可以這樣:

$nameCriteria = []; 
foreach ($searchInfo->nameTokens as $token) { 
    $nameCriteria[] = mysqli_real_escape_string($link, $token); 
} 
$nameCriteria = "IN('" . join("','", $nameCriteria) . "')";