Php mysql命令不支持';我不能正常工作

Php mysql命令不支持';我不能正常工作,php,mysql,sql,Php,Mysql,Sql,我有一张这样的桌子 id nam start_t end_t 51 something 2014-10-01 0000-00-00 我想把结尾改为“2014-9-31”,所以我使用了这个命令 "UPDATE `sometable` SET `end_t`="2014-9-31" WHERE id=51 limit 1" 但是,上面的代码只是将end\u t设置为0000-00-00 不过,这些查询工作正常 "UPDATE `sometable` SET `e

我有一张这样的桌子

id    nam        start_t    end_t
51    something  2014-10-01 0000-00-00
我想把结尾改为“2014-9-31”,所以我使用了这个命令

"UPDATE `sometable` SET `end_t`="2014-9-31" WHERE id=51 limit 1"
但是,上面的代码只是将end\u t设置为0000-00-00

不过,这些查询工作正常

"UPDATE `sometable` SET `end_t`="2014-10-31" WHERE id=51 limit 1"
"UPDATE `sometable` SET `end_t`="2014-8-31" WHERE id=51 limit 1"

编辑:哇。。。我觉得自己很愚蠢~。~非常感谢你的反馈

拜托,9月份没有31天了

="2014-9-31"    // 30 max :)

因为这是一个日期字段,所以它知道哪个日期有效,哪个日期无效。这就是为什么当您向其发送无效日期时,它会将值设置为默认值,而不是无效日期。

因为九月没有31天

像这样改变它

"UPDATE sometable SET end_t="2014-9-30" WHERE id=51 limit 1"

30天有9月、4月、6月和11月。你不应该对值使用单引号吗?双引号也可以@itsolsdouble quotes可能不起作用,因为当你使用它时,它会在结束后结束sring,所以日期是字符串。当查询以双引号开始时,可以使用单引号来表示查询的显示方式。这甚至可能是一种格式设置,他们在查询周围加上双引号,向我们展示这些内容。没有什么能阻止mysql理解双引号内的内容和单引号内的内容一样好。您还可以看到他们问题的结尾,他们提到了可以使用双引号的值。引号实际上与这个问题无关。这是一个无效的相关日期。哦,哇,我想我在哪里读到mysql没有检查最大天数,你可以把31作为最大感谢,如果这是一个mysql不关心的文本字段,但当它是一个日期字段时,mysql必须关心。就像你不能把abc放在数字字段里一样。