2014-02-15 29 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'

相关问题