5

これはばかげているように聞こえますが、私の人生では理解できません。私はすべてを試しました。

問題は、日付文字列を MySQL テーブルに取得する方法がわからないことです...入力形式のバリエーションを考慮して、最初に Unix に変換しています..

$_POST['date']形式は次のとおりです: 19-1-2013 4:43:32

$datestr= strtotime($_POST['date']);
    echo $datestr;
    $sql = "INSERT INTO `calendar` (`date`, `title`, `event`) VALUES ('FROM_UNIXTIME(".$datestr.")', '".mysql_real_escape_string($_POST['title'])."', '".mysql_real_escape_string($_POST['desc'])."')";
    $query = mysql_query($sql);

これは私が試した最新のもので、DATETIME フィールドにまだすべてゼロが表示されています。

お願いします、私は何を間違っていますか?

4

1 に答える 1

12

FROM_UNIXTIME関数が値になるため、関数を囲む一重引用符を削除します。例えば

$sql = "INSERT INTO `calendar` (`date`, `title`, `event`) VALUES (FROM_UNIXTIME(".$datestr."), '".mysql_real_escape_string($_POST['title'])."', '".mysql_real_escape_string($_POST['desc'])."')";

補足として、あなたのクエリは で脆弱です。それからSQL Injection保護する方法については、以下の記事を参照してください。

于 2013-01-08T09:48:55.223 に答える