2016-10-26 131 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) . "')";