首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 網頁程式設計 >> PHP 程式設計 >> PHP 相關知識

PHP-MySQL 外鍵約束問題:命令行可執行 SQL 在網頁中失效的解決方案

     編輯:PHP 相關知識

PHP-MySQL 外鍵約束問題:命令行可執行 SQL 在網頁中失效的解決方案

情境描述:

  1. 因外鍵較多,插入資料前先關閉外鍵檢查(SET FOREIGN_KEY_CHECKS=0)。
  2. SQL 語句涉及外鍵綁定其他表,導致無法從 PHP 網頁插入資料。

原因分析

SET FOREIGN_KEY_CHECKS=0 此指令僅對單一資料庫用戶的當前會話有效,即僅對執行該語句的用戶連線生效,可在忽略外鍵情況下插入資料。若在命令行執行後未關閉連線,後續插入生效;但在 PHP 網頁中,每次請求都是獨立連線,設定不會跨請求保持。

經驗總結與最佳實踐

對於特殊操作修改用戶權限或會話變數,應及時恢復正常狀態,確保資料完整性:

SET FOREIGN_KEY_CHECKS=0;
-- 你的 SQL 插入/更新語句
SET FOREIGN_KEY_CHECKS=1;  // ***** 這步極其重要 *****

務必在同一個資料庫連線/事務中成對使用開關,避免殘留風險。

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