当值有连字符时,MySQL DELETE不起作用

时间:2014-02-15 06:32:04

标签: php mysql sql

我发现来自PHP的MySQL DELETE语句中的值中的连字符往往会使事情变得不起作用。它不会失败,但它也不会删除正确的行。这究竟是为什么? INSERT工作正常,它只是删除。

编辑:我在这种情况下运行的特定查询(删除了IP)是:

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

删除连字符时成功运行。 我还补充说,这发生在PHP中,并且似乎仅限于此类。

表结构,根据请求:

目前没有任何记录。

3 个答案:

答案 0 :(得分:3)

您的video列长度为varchar(10),但传递值包含11

video = '-yfOsVrJLGs'

答案 1 :(得分:1)

检查video长度。varchar(10)-yfOsVrJLGs包含11个字符。请尝试提供正确的输入

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

答案 2 :(得分:0)

非常简单,但很容易犯错误。

列的长度为varchar(10),但需要为varchar(11),因为有11个字符。 video = '-yfOsVrJLGs'