首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫

MySQL 錯誤 1065「Query was empty」原因分析與解決方案

     編輯:MySQL 資料庫相關知識

錯誤代碼

ERROR 1065 (HY000): Query was empty

根因

向 MySQL 發送了空 SQL 語句 (長度為 0 或僅含空白字元)。常見於:

  • 應用程式動態構建 SQL 時,條件判斷導致最終字串為空。
  • 讀取 SQL 檔案執行,遇到空行或純註釋行未過濾。
  • 客戶端工具 (如 phpMyAdmin、MySQL Workbench) 執行未輸入語句直接點擊執行。
  • 存儲過程/觸發器中 PREPARE 來自空變數。

解決方案

  1. 應用層攔截:執行前檢查 sql.trim().length > 0,空則跳過或報業務錯誤。
  2. 批次執行工具:讀取 .sql 檔逐行/分號分割時,過濾 ^\s*$、^\s*--、^\s*# 行。
  3. 客戶端操作:確認編輯區有有效 SQL 再執行。
  4. 存儲過程防禦:
    IF LENGTH(TRIM(@sql)) > 0 THEN PREPARE stmt FROM @sql; EXECUTE stmt; DEALLOCATE PREPARE stmt; END IF;

驗證範例

mysql> ;
ERROR 1065 (HY000): Query was empty

mysql> PREPARE s FROM '';
ERROR 1065 (HY000): Query was empty

總結

此錯誤純屬客戶端/應用層邏輯缺陷,非資料庫引擎故障。加入非空校驗即可徹底杜絕。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved