從PHP向MySQL傳入數據時,為什麼會是空的呢?

704505202


使用PHP腳本向Mysql數據庫中插入數據,數據庫中數據為空?如果PHP鏈接Mysql數據庫沒有問題,那可以從這幾方面來看:

1、你傳入的數據是否為空?

判斷傳入的數據是否為空,可以使用PHP輸出函數進行打印,看看打印的結果是什麼,確定是否為空值。

2、你接收的地方是否能接收到數據?

很多時候我們在書寫代碼時會多一個字母或少一個字母,導致傳入的字段名稱和接受的字段名稱不一致,從而接受不到正常的數據。

3、你使用PHP向Mysql數據庫寫入數據時,字段名稱、字段類型、字段長度是否和數據庫一致?

如果這些字段信息不一致也會導致數據插入數據庫失敗。


編碼之道


首先,從你的說法上看,應該是能正常連接數據庫了。

至於為什麼數據是空的。

下面分兩個方向

1.寫入數據,但是數據為空的,請在插入數據之前,把數據print出來。

這是我們經常用的操作

print_r($something);

打印某個數組,這個數組可以看出你往數據庫裡寫了什麼東西。

請注意:每個字段要一一對應,不要順序搞錯了,比如0和空字符是兩回事,但是寫進去說不定數據庫是照單全收的。


2.從數據庫讀取數據為空,請用數據庫管理工具查看,是否真的有數據,代碼是否連接到了相同的數據庫,有時候你調試半天,發現你連接的根本不是你想要的數據庫。

確定連接正確,而且有數據後,同樣的請把查詢語句打印出來

用echo ,用var_dump都可以,看看語法是否正確,看看條件是否寫錯了。


從對比來說,PHP相對來說,是比較容易排查問題的,加油!

有不明白的,請留言追問,知無不言言無不盡。


東哥技術分享


我還真碰到過這類問題,我這邊是有一個IT運維的管理系統,架設在Internet上,我們有IT服務工程師在客戶現場做服務,之後需要將信息更新到系統中。有段時間,工程師反應經常碰見系統報錯的情況,就是系統檢測到部分上傳信息為空而要求重新輸入。

我查了一圈,最後發現是對方網絡問題。對方是內外網的環境,在外網訪問internet必須通過proxy。通過我這個服務獲得的數據日誌分析,感覺上這個proxyserver數據處理有問題,有時數據只能通過一部分剩下的就被截了,這次不行下次就沒準兒行。由於那個服務器不歸我們管,所以我們能做的只有在我們服務器端增強數據檢測功能,確保進入系統的數據(關鍵部分)是完整的。

所以,我個人的建議是,在數據進數據庫之前做好數據檢驗/檢查工作,至少保證數據是存在的,尤其是關鍵性字段。如果這些字段數據有問題,就給出錯誤信息。這樣的工作,即使前端做了,後端也要做。


74440697


1:空是在哪裡為空?入庫前判斷一下參數是否真的傳過來,如果沒傳過來,插入數據自然是空的。

2:如果參數傳過來了,那麼需要檢查MYSQL語法,可以把整個mysql語句打印出來,mysql語句直接在庫裡運行,看報什麼錯誤。

3:如果mysql語句可以在庫裡運行,檢查一下您的php鏈接mysql是否有問題


分享到:


相關文章: