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 に答える