一、什麼是mysqli_error
mysqli_error是MYSQLI擴展中的一個函數,用來獲得上一次MYSQLI操作產生的文本錯誤信息,mysqli_error必須和mysqli_connect或mysqli_init一起使用。mysqli_error() 函數返回最近執行的操作的錯誤描述。如果沒有錯誤返回空字元串。
二、mysqli_error函數的語法
mysqli_error : ( mysqli $link ) : string
三、如何正確使用mysqli_error
使用mysqli_error一般都是和mysqli_connect以及mysqli_query聯用,以下是一個簡單的示例:
$conn = mysqli_connect($host,$user,$pwd); if(!$conn){ die('連接失敗:'.mysqli_error()); } mysqli_select_db($conn,$db); $result=mysqli_query($conn,$sql); if(!$result){ die('查詢失敗:'.mysqli_error()); }
四、mysqli_error應用實例與說明
1、連接錯誤處理
如果連接MYSQL資料庫出錯,我們該如何做錯誤處理呢?下面是一個示例:
$conn = mysqli_connect($host, $user, $pwd); if(!$conn){ die('連接失敗:'.mysqli_error()); }
當連接失敗時,會輸出一個錯誤信息。而mysqli_error()會返回最近一次函數調用的最後一個錯誤信息,這樣我們就能夠很輕鬆的得到錯誤信息了。
2、查詢錯誤處理
如果查詢MYSQL資料庫出錯,我們應該如何處理呢?下面是一個示例:
$conn = mysqli_connect($host,$user,$pwd,$dbName); if(!$conn){ die("連接失敗:".mysqli_error()); exit(); } $sql="SELECT * FROM `table`"; mysqli_query($conn,$sql) or die(mysqli_error($conn));
在SQL查詢執行期間出現錯誤時,PHP的mysqli_query將會返回false。我們可以在mysqli_query執行失敗的情況下,使用mysqli_error輸出錯誤信息。
3、mysqli_error使用小技巧
有時我們需要將mysqli錯誤信息記錄到文件或發送到管理員電子郵件,如下是一個使用小技巧的示例:
$conn = mysqli_connect($host,$user,$pwd,$dbName); if(!$conn){ $msg = sprintf("連接失敗: %s", mysqli_connect_error()); error_log($msg); exit(); } $sql="SELECT * FROM `table`"; $result=mysqli_query($conn,$sql) or die("查詢失敗:".mysqli_error($conn));
這裡通過PHP的error_log函數將錯誤寫入到錯誤日誌文件中。我們也可以將錯誤信息發送到管理員電子郵件。
五、mysqli_error常見的錯誤信息
MYSQLI錯誤信息多種多樣,下面是一些常見的MYSQLI錯誤信息:
1、mysqli連接失敗
連接失敗未指定任何錯誤消息:mysqli_connect() expects at least 1 parameter, 0 given in file
2、資料庫連接失敗
資料庫連接失敗提示mysql_select_db() expects parameter 2 to be resource, boolean given in file
3、查詢執行失敗
查詢執行失敗提示mysqli_query() expects at least 2 parameters, 1 given in file
4、sql查詢錯誤
sql查詢錯誤提示You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ‘-‘ at line 1
六、總結
通過本文的介紹,我們了解了mysqli_error函數的用法和相關注意事項。在實際代碼開發中,對mysqli_error的理解和應用將會成為我們編寫更加健壯的代碼的一項重要基礎。
原創文章,作者:FBRPW,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/313447.html