我发现来自PHP的MySQL DELETE语句中的值中的连字符往往会使事情变得不起作用。它不会失败,但它也不会删除正确的行。这究竟是为什么? INSERT工作正常,它只是删除。
编辑:我在这种情况下运行的特定查询(删除了IP)是:
DELETE FROM ratings WHERE ip=IP_ADDRESS AND video = '-yfOsVrJLGt'
删除连字符时成功运行。 我还补充说,这发生在PHP中,并且似乎仅限于此类。
表结构,根据请求:
目前没有任何记录。
答案 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'