[英]is mysqli_insert_id reliable?
我正在構建一個登錄系統,它使用 mysql 數據庫 (PHP) 中的三個表,稱為用戶、會話和登錄。 所有表都有一個自增索引。 成功登錄后,用戶行將通過存儲在新登錄行中的值鏈接到會話行。 我想知道在這個過程中使用mysqli_insert_id()
是否安全。 我擔心如果會話行INSERT
期間出現錯誤,登錄行將收到不正確的會話索引號,用戶將登錄到錯誤的會話。
這會有問題嗎? 如果是這樣,有什么好的處理方法嗎?
如果滿足以下條件,該方法將產生可靠的結果:
INSERT
操作成功。INSERT
成功后立即檢查結果。 大多數情況下,只要您使用相同的數據庫句柄,調用INSERT
然后獲取作為下一個操作插入的 ID 就足夠了。
框架會自動為您完成所有這些工作,因此您通常不應該關心它。
如果您想確保您的數據和您執行的操作的完整性,那么我建議您采用“全部或無”方法。 這意味着您的所有查詢都將單獨通過或全部失敗,即使有一個失敗。 您可以使用 MySQL 中的 TRANSACTION & ROLLBACK 功能來實現這一點。 欲了解更多信息,您可以訪問: http : //www.tutorialspoint.com/sql/sql-transactions.htm
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.