如何將mysql改為mysqli
P粉124070451
P粉124070451 2023-07-27 23:56:06
0
2
539
<p>基於下面的程式碼,我用於常規的mysql,我應該如何將其轉換為使用mysqli? </p><p>只要將mysql_query($sql);改為mysqli_query($sql);,是這樣簡單嗎? </p><p><strong><code></code><code></code></strong></p> <pre class="brush:php;toolbar:false;"><?PHP //in my header file that is included on every page I have this $DB["dbName"] = "emails"; $DB["host"] = "localhost"; $DB["user"] = "root"; $DB["pass"] = ""; $link = mysql_connect($DB['host'], $DB['user'], $DB['pass']) or die("<center>An Internal Error has Occured. Please report following error to the webmaster .<br><br>".mysql_error()."'</center>"); mysql_select_db($DB['dbName']); // end header connection part // function from a functions file that I run a mysql query through in any page. function executeQuery($sql) { $result = mysql_query($sql); if (mysql_error()) { $error = '<BR><center><font size=" 1" face="arial" color="red">An Internal Error has Occured.<BR> The error has been recorded for review< /font></center><br>'; if ($_SESSION['auto_id'] == 1) { $sql_formatted = highlight_string(stripslashes($sql), true); $error .= '<b>The MySQL Syntax Used</b><br>' . $sql_formatted . '<br><br><b>The My MySQL Error Returned<<br><b>The My MySQL Error Returned<<br><b>The MySQL Error Returned</b>lt;/b> ;' . mysql_error(); } die($error); } return $result; } // example query ran on anypage of the site using executeQuery function $sql='SELECT auto_id FROM friend_reg_user WHERE auto_id=' .$info['auto_id']; $result_member=executequery($sql); if($line_member=mysql_fetch_array($result_member)){ extract($line_member); } else { header("location: index.php"); exit; } ?></pre> <p><br /></p>
P粉124070451
P粉124070451

全部回覆(2)
P粉663883862

(我意識到這是舊問題,但它仍然經常出現...)

如果您確實將mysql_*替換為mysqli_*,請記住許多mysqli_*函數需要傳遞資料庫連接。

例如:


mysql_query($query)

變成了:

mysqli_query($link, $query)

也就是說,需要進行大量的檢查。

P粉132730839

首先,您可能需要將每個mysql_*函數呼叫替換為其對應的mysqli_*函數,至少如果您願意使用過程式API的話——考慮到您已經有一些基於MySQL API的程式碼,這將是更簡單的方法,因為MySQL API是過程式的。

為了幫助您,MySQLi擴充函數摘要無疑會非常有幫助。

例如:


  • mysql_connect將被替換為mysqli_connect。
  • mysql_error將根據上下文被替換為mysqli_error和/或mysqli_connect_error。
  • mysql_query將被替換為mysqli_query。
  • 等等

注意:對於某些函數,您可能需要仔細檢查參數:可能會有一些細微的差異,但我想說的是不多:無論是mysql還是mysqli都是基於相同的函式庫( libmysql;至少對於PHP <= 5.2)。

例如:

  • 使用mysql,您必須在連接後使用mysql_select_db來指示您要在哪個資料庫上執行查詢
  • 而mysqli則允許您將資料庫名稱以mysqli_connect的第四個參數來指定。
  • 不過,還有一個mysqli_select_db函數可供您使用,如果您更喜歡的話。

完成這些步驟後,請嘗試執行您腳本的新版本...並檢查是否一切正常;如果不正常...那就是時候去找錯誤了;-)

熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板