我試圖在我的數據庫中更新日期字段。這樣的查詢:更新時爲空日期字段 - MySQL PHP
$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「我修改了日期並顯示在彈出窗口中,值正確; plz幫助:)
UPDATE 奇怪的是我,但如果我使用:
$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 ;
你最好做PHP'的var_dump()'您'$ _ POST [ '數據']' - 而不是一個彈出窗口(?我想這是JavaScript的'警報()'),它可以顯示一些變量中的「棘手」符號。 – barbashov 2013-04-08 22:10:32
我會說,做'var_dump($ q);'兩次並比較。 – michi 2013-04-08 22:13:39
你應該首先逃避帖子數據。也許有一個在這裏閱讀:http://php.net/manual/en/security.database.sql-injection.php – 2013-04-08 22:17:50