我在我的網站上通過MySQLi建立了一個成功的連接。但是現在我的搜索腳本已經過時了,並且和我一樣對此很陌生,我正在努力理解如何將我的腳本轉換爲mysqli。將MySQL查詢轉換爲MySQLi
function doSearch() {
$output = '';
if(isset($_POST['search'])) {
$searchq = $_POST['search'];
$searchq = preg_replace ("#[^0-9a-z]#i","",$searchq);
$query = mysql_query("SELECT * FROM entries WHERE name LIKE '%$searchq%' or description LIKE '%$searchq%' or content LIKE '%$searchq%'") or die("Could not search");
$count = mysql_num_rows($query);
if($count == 0) {
$output = '<tr><tr>No results found.</tr></td>';
} else {
while($row = mysql_fetch_array($query)) {
$eName = $row['name'];
$eDesc = $row['description'];
$eCont = $row['content'];
$id = $row['id'];
$elvl = $row['level'];
$ehp = $row['hp'];
$output .= '<tr><td><a href="http://seersvillage.com/v1.2/npc.php?id=' .$id. '" onclick="document.linkform.submit();">'.$eName.'</a></td><td>'.$eDesc.'</td><td>'.$elvl.'</td><td>'.$ehp.'</td></tr>';
}
}
return $output;
}
}
據我所知,mysql_query需要改變我是吧?儘管我完全不確定還需要改變什麼。我試過看其他例子,但是我被代碼覆蓋了。
我有我的connect.php文件attatched的functions.php文件,其中放置了上述代碼。
一些援助將不勝感激。
編輯:也忽略可憐的腳本@ $輸出,雖然有一個很好的笑聲。 :)
一般來說,mysqli是一個直接替代品。唯一的真正的區別是mysqli使用'($ con,$ query)'類型參數而不是'($ query,$ con)'在mysql中。但要正確轉換爲mysqli,您需要從根本上重寫所有查詢以利用佔位符和準備好的語句。函數名稱大多是1:1,只需添加一個'i'。 –
你需要替換所有的mysql交互函數:mysql_query,mysql_fetch_array和mysql_num_rows。因爲我沒有給你替換,所以沒有答案,但你可以在'mysqli'文檔中查看它。 – alexis