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