2014-02-15 61 views
0

我發現PHP中的MySQL DELETE語句中的連字符傾向於使事情變得無法正常工作。它不會失敗,但它也不會刪除正確的行。爲什麼是這樣? INSERT工作正常,只是DELETE。當數值有連字符時,MySQL DELETE不起作用

編輯:我在這種情況下運行(與IP刪除)的特定查詢是:

DELETE FROM ratings WHERE ip=IP_ADDRESS AND video = '-yfOsVrJLGt' 

這成功運行,當我刪除了連字符。 我也補充說,這發生在PHP中,似乎僅限於此。

表結構,由於每個請求:

目前在它沒有記錄。

+2

你的查詢在哪裏? –

+0

'UPDATE'有效嗎?你確定在刪除行後提交你的'DELETE'? –

+0

你可以顯示你的表格記錄和結構! –

回答

3

video柱長度爲varchar(10),但傳遞的值包含11

video = '-yfOsVrJLGs' 
+0

現在我覺得很傻。那麼我認爲它失敗了,因爲最後一個字符被切斷了。我只是假設它是連字符,因爲當我刪除它時,它就起作用了。 :P – caseif

+0

是的,你是對的! –

1

檢查video長度。 varchar(10)-yfOsVrJLGs包含11 character.So儘量給正確的輸入

DELETE FROM ratings WHERE ip=IP_ADDRESS AND video = 'yfOsVrJLGs' 
0

很簡單,但容易犯的錯誤。

您的列長度爲varchar(10),但需要爲varchar(11),因爲有11個字符。 video = '-yfOsVrJLGs'

相關問題