PHP:stripos中未定义的偏移量

PHP:stripos中未定义的偏移量,php,mysql,undefined,offset,Php,Mysql,Undefined,Offset,你好!!我正在使用AJAX和DB,当试图在选项和选择标记中呈现我的DB时,它会给我一个未定义的偏移量错误 这是我的密码: $sql = "SELECT word FROM words"; $result = mysql_query($sql); $response = ""; $size = 0; if($result === FALSE) { die(mysql_error()); } while ($row = mysql_fetch_array($result)) {

你好!!我正在使用AJAX和DB,当试图在选项和选择标记中呈现我的DB时,它会给我一个未定义的偏移量错误

这是我的密码:

$sql = "SELECT word FROM words";
$result = mysql_query($sql);
$response = "";
$size = 0;

if($result === FALSE) {
    die(mysql_error()); 
}

while ($row = mysql_fetch_array($result)) {
    for($i = 0; $i < count($row); $i ++) {
        $pos = stripos(strtolower($row[$i]), $pattern); //Here marks the error
        if(!($pos === false)) {
          $size ++;
          $word = $row[$i];
          $response .= "<option value=\"$word\">$word</option>";
        }
    }
}

if($size > 0) {
    echo "<select id=\"list\" size=$size onclick=\"selectValue()\">$response</select>";
}
这个应用程序的想法是,你可以开始键入任何单词,它将搜索与输入匹配的单词,首先显示在选项HTML标记中,当没有更多选项匹配时,它将显示在选择HTML标记中


这是一种工作,但它显示了这种错误。有人能帮我吗?谢谢

下面是修改后的脚本:

while ($row = mysql_fetch_assoc($result)) {
  $pos = stripos(strtolower($row['word']), $pattern);
  if(!($pos === false)) {
    $size ++;
    $word = $row['word'];
    $response .= "<option value=\"$word\">$word</option>";
  }
}
但实际上,下一个脚本将运行得更快:

if ($result = mysql_query("SELECT word FROM words where word like '%".mysql_real_escape_string($pattern)."%'")) {
    $response = "";
    $size = 0;
    while ($row = mysql_fetch_assoc($result)) {
        $size ++;
        $word = htmlspecialchars($row['word']);
        $response .= "<option value=\"$word\">$word</option>";
    }
    echo "<select id=\"list\" size=$size onclick=\"selectValue()\">$response</select>";
}

是的-使用mysqli而不是mysql,mysql_uu函数已被弃用。

您的$pattern变量在哪里?请注意,mysql_uu函数已被弃用,并在下一个PHP版本中被删除。为了保持代码正常工作,请将代码迁移到mysqli,甚至更好地迁移到PDO。