我正在尝试更新数据库中的日期字段。像这样查询:
$q = "update news set data = STR_TO_DATE('2011-03-05','%Y-%m-%d'), title = '".$title."', content='".$content."',....";
效果很好,但是:
$q = "update news set data = STR_TO_DATE('".$data."','%Y-%m-%d'), title = '".$title."', content='"...";
它不工作:(
我有约会:
$data = $_POST["data"];
它的值为“2013-04-13”。我修剪了日期并在弹出窗口中显示并且值是正确的;请帮助:)
更新 这对我来说很奇怪,但如果我使用:
$q = "insert into news set data = CAST('".$data."' AS DATE), title = '".$title."', content='".$content."'...";
它工作得很好。只插入不更新
表格脚本:
CREATE TABLE IF NOT EXISTS `news` (`id` int(11) NOT NULL AUTO_INCREMENT, `data` date NOT NULL, `title` text NOT NULL, `content` text NOT NULL, `img` text NOT NULL, `n_img` text NOT NULL, PRIMARY KEY (`id`), KEY `id` (`id`)) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=36 ;
最佳答案
您为什么使用 STR_TO_DATE
?看起来您的日期格式已经正确。尝试删除它并按原样插入?
虽然可能想先逃避它。
$data = mysql_real_escape_string($_POST["data"]);
关于php - 更新日期字段时为空 - MySQL PHP,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15889893/