1

我正在尝试更新我的数据库中的日期字段。像这样查询:

$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 ;
4

1 回答 1

1

你为什么用STR_TO_DATE?看起来您的日期格式已经正确。尝试删除它并按原样插入?

可能想先逃脱它。

$data = mysql_real_escape_string($_POST["data"]);
于 2013-04-08T22:13:34.227 回答