-6

これは奇妙なものです。

私はそれをmysqlに投稿するときに変換される日付を持っていますが、mm-dd-yyyy 再注文しましyyyy-mm-dd たが、それでも挿入されません

$date = date("Y-m-d", strtotime($_POST['leaving_date']) );

何かアドバイス?乾杯

編集

実際のクエリ:

mysql_query("INSERT INTO booking_info (customer_id, booking_ref, date_of_travel) VALUES (".mysql_real_escape_string($_POST['customer_id']).", ".mysql_real_escape_string($rnd).", ".mysql_real_escape_string($date).")");
4

6 に答える 6

2

あなたの値は一重引用符で囲まれていません。

mysql_query("INSERT INTO booking_info (customer_id, booking_ref, date_of_travel) 
             VALUES (
               '".mysql_real_escape_string($_POST['customer_id'])."',
               '".mysql_real_escape_string($rnd)."', 
               '".mysql_real_escape_string($date)."')");
于 2012-09-05T15:26:12.683 に答える
1
mysql_query("INSERT INTO booking_info (customer_id, booking_ref, date_of_travel) VALUES (".mysql_real_escape_string($_POST['customer_id']).", ".mysql_real_escape_string($rnd).", '$date')");

それを試してみてください....問題は解決するはずですが、SQLを記述する良い方法ではありません... $date変数として$date変数でmysql_real_escape_string関数を呼び出す必要はありません。

于 2012-09-05T15:29:36.007 に答える
1

PDO を使用してもこれらの問題は発生しないことに注意してください。説明させてください:

// assuming $db is a PDO instance to your database
// prepare the statement
$stmt = $db->prepare('INSERT INTO booking_info (customer_id, booking_ref, date_of_travel) VALUES (:customer, :ref, :date)');
// execute the statement with your variables
$stmt->execute(array(
    ':customer' => $_POST['customer_id'],
    ':ref' => $rnd,
    ':date' => $date,
));

適切な引用とエスケープはバックグラウンドで行われます。きちんとね?:)

于 2012-09-05T15:36:34.060 に答える
0

編集した質問を見ると、日付を一重引用符で囲んでいないようです。また、遅くなる可能性がありますが、いつでも MySQL にフォーマットを任せることができます。使用している拡張機能に応じて、次のようなことができます。

INSERT ... VALUES (STR_TO_DATE('$phpDate', '%m-%d-%Y')), col2, ...)
于 2012-09-05T15:22:19.123 に答える
0

日付を一重引用符で囲む必要があります (これが整数またはその他の種類の数値フィールドでない場合は、おそらく booking_ref も)。

これを試して:

mysql_query("INSERT INTO booking_info (customer_id, booking_ref, date_of_travel) VALUES (".mysql_real_escape_string($_POST['customer_id']).", ".mysql_real_escape_string($rnd).", '".mysql_real_escape_string($date)."')");
于 2012-09-05T15:23:45.843 に答える
-1

日付を追加するときは、文字列のように二重引用符で囲みます。

mysql_query("INSERT INTO booking_info (customer_id, booking_ref, date_of_travel) VALUES (".mysql_real_escape_string($_POST['customer_id']).", ".mysql_real_escape_string($rnd).", \"".mysql_real_escape_string($date)."\")");
于 2012-09-05T15:21:51.823 に答える