最近寫了一支 php + MySQL 的程式,但是遇到了一點問題無法解決。
每當我 Insert 一筆資料的時候,table 裡面會多兩筆資料,前面那筆正常,但後面那筆則全部欄位都是空白(Primary Key 除外)。
[[MORE]]
上網問了 Google,發現有這個問題的不只我一個,目前也都還沒得到正確的解答:
目前大概歸納出一個可能性,就是 Primary Key 為 Auto Increment 的時候,會出現這樣的現象。我把程式清理過了,應該不是邏輯上的錯誤。不知道有沒有大大可以為我釋疑?
解決了嗎?
回覆刪除從沒遇過這樣的題,我很好奇。
(我是用 Perl+MySQL)
CITYPIG:
回覆刪除多謝您的關心,這個問題還是沒有解決。
幸虧我寫的程式多半是我自己用而已,所以自己再麻煩一點砍掉多出來的 record 暫時還沒大礙。
但是我已經把操作 Insert 的那段程式作最可能的簡化了:1.連到 MySQL 2. 從 GET或POST截出資料 3.進行Insert 4.中斷MySQL連線。
中間沒有任何其他的邏輯判斷。但還是不行。
目前這件事的最新發展是,只有使用 Mozilla Firefox 才會 insert 空白資料,IE 則否。
回覆刪除還是不知道為什麼。
原來是 Firefox 才會有,怪不得我最近用 IE 都沒發生。
回覆刪除有幾個我想到的方法:
1. 換掉 firefox 版本,使用舊版試試看,或用 opera 等其他核心的瀏覽器試試看是否有同樣情況,如果沒有,表示是 firefox 的問題。
2. 改用舊版或其他版本的 MySQL。
3. 試試看在 windows、Linux 上分別使用 firefox 會不會有同樣的情況。
3. 使用 adodb,或其他的 bridge 看看。
再不行就是判斷瀏覽器,遇到 firefox 時檢測是否插入多餘空白資料,是的話多做刪除動作。
JOCOSN:
回覆刪除我現在就是用你最後說的方法,檢查是否為 firefox 插入空白資料。
但是很沒道理啊,怎麼是自己寫的程式才會這樣,其他套裝軟體(比如 phpMyAdmin 或 phpNuke) 就沒問題,是他們有使用 bridge 嗎?
我昨天才剛下載 Firefox 1.5 版測試,發現沒有你說的問題。
回覆刪除會不會是你用的 PHP 語法本身有 bug? 我把圖貼上給你看一下。
[img]http://fileserver2.jpghosting.com/images/firefox1_49ad19ba5f1040438ff99e840d334d42.jpg[/img]
[img]http://fileserver2.jpghosting.com/images/firefox2_843313e1a90466e3ee1690836eee5a8c.jpg[/img]
我申請這個 MySQL 網站
http://www.badblock.com/
利用我的電腦連上這個 MySQL 網站新增一筆資料,使用 IE6+Sp1,Windows 版的 Firefox 1.5 都沒問題,會不會是 Linux 版的 Firefox bug?
我沒有檢查 phpMyAdmin 或 phpNuke,事實上這些套裝軟體蠻複雜的,像我申請國外的網站,不能使用中文,但是這些軟體在那些網站裝好後就會跑出中文出來,怪怪的巄東。