在 PHP 中使用 mysql_query() 執行 SQL 語句時,其返回值取決於查詢類型:
true,失敗返回 false。false。判斷錯誤時,可搭配 mysql_error() 獲取具體錯誤訊息,常見寫法如下:
mysql_query($sql) or die("Error: " . mysql_error());
以下列出部分常見 MySQL 錯誤代碼與對應常數名稱,供除錯參考:
| 錯誤代碼 | 常數名稱 | 說明 |
|---|---|---|
| 1004 | ER_CANT_CREATE_FILE | 無法創建文件 |
| 1005 | ER_CANT_CREATE_TABLE | 無法創建表 |
| 1006 | ER_CANT_CREATE_DB | 無法創建數據庫 |
| 1007 | ER_DB_CREATE_EXISTS | 數據庫已存在 |
| 1008 | ER_DB_DROP_EXISTS | 數據庫不存在 |
| 1022 | ER_DUP_KEY | 鍵值重複 |
| 1044 | ER_DBACCESS_DENIED_ERROR | 數據庫存取被拒絕 |
| 1045 | ER_ACCESS_DENIED_ERROR | 存取被拒絕(帳號/密碼錯誤) |
| 1049 | ER_BAD_DB_ERROR | 數據庫不存在 |
| 1050 | ER_TABLE_EXISTS_ERROR | 表已存在 |
| 1051 | ER_BAD_TABLE_ERROR | 表不存在 |
| 1054 | ER_BAD_FIELD_ERROR | 欄位不存在 |
| 1062 | ER_DUP_ENTRY | 條目重複(主鍵/唯一鍵衝突) |
| 1064 | ER_PARSE_ERROR | SQL 語法解析錯誤 |
| 1146 | ER_NO_SUCH_TABLE | 表不存在 |
| 1205 | ER_LOCK_WAIT_TIMEOUT | 鎖等待超時 |
| 1213 | ER_LOCK_DEADLOCK | 死鎖 |
註:完整錯誤代碼列表請見 MySQL 官方手冊「Server Error Codes and Messages」章節。