我有一個mysql_query
到select *
從'english'
列表數據庫和mysql_fetch_assoc
返回一個數組。如果找到'flick'
,我嘗試使用in_array()
來搜索單詞'flick'
(實際存在於數據庫中),但不應顯示它,但會顯示它。我認爲in_array
函數找不到單詞'flick'
。請看下面的代碼:PHP in_array不能正常工作
<?php
error_reporting(E_ALL);
require 'db.php';
function spellcheck($word)
{
$output = array();
$word = mysql_real_escape_string($word);
$words = mysql_query("SELECT `word` FROM `english` WHERE LEFT(`word`, 1) = '" .
substr($word, 0, 1) . "'");
while(($words_row = mysql_fetch_assoc($words)) && (in_array($word, $words_row)==false))
{
similar_text($word, $words_row['word'], $percent);
if($percent > 82)
{
$output[] = $words_row['word'];
}
}
return (empty($output)) ? false : $output;
}
if (isset($_GET['word']) && trim($_GET['word']) != null)
{
$word = $_GET['word'];
$spellcheck = spellcheck($word);
if ($spellcheck !== false)
{
echo '<pre>' . print_r($spellcheck, true) . '</pre>';
} else {
echo '<p>' . $word . ' spelled correctly, or no suggestions founds.</p>';
}
}
?>
<form action="" method="GET">
Check single word spelling:
<input type="text" name="word" />
<input type="submit" value="Check" />
</form>
代碼返回:
Array (
[0] => flick
[1] => flicks
)
但它應該是:
"spelled correctly, or no suggestions founds."
不要再使用'mysql_ *'函數了。他們已經棄用了很長時間,並在接下來的幾個月裏最終被PHP7刪除。改用PDO或mysql ** i **。 – TiMESPLiNTER
謝謝。你相信'mysql_ *'是錯誤答案的原因嗎? – Majid
親愛的@deceze,我測試'mysqli_ *',並且答案是相同的。這意味着我的本地主機xampp中mysl和mysqli之間沒有差別。 – Majid