1

こんにちは私はphpとmySQLを学び、MySQlへの日付の挿入または更新に問題があります。

私が返すエラーは通常、次のようなものです。SQL構文にエラーがあります。'08:17:00、2012-07-12 08:17:00、2012-07-12 08:17:00、2012-07-の近くで使用する正しい構文については、MySQLサーバーのバージョンに対応するマニュアルを確認してください。 12 08:17:00

私は4つの日付エントリを持っているので、上記の4つの日付の理由です。ですから、日付は入っているようですが、時間に問題があります。私のdatebaseimではdatetimeを使用しています。

これが私のコードです。日付の挿入をコメントアウトすると、他のすべてが正常に挿入されるため、不要なものを除外しました。

$end_date = ($_POST['end_date']);
$end_date = date('Y-m-d H:i:s',strtotime($end_date));

クエリの挿入は単純です。

mysql_query("INSERT INTO deals (end_date) 
VALUES ('$end_date')") 

or die(mysql_error());  

今、私は文字通りこれを研究するのに何時間も費やし、運がなくてたくさんの組み合わせを試しました、私がアップデートに適用した1つの解決策はこれでうまくいきましたが、これに3日を追加する必要がないのでインサートに適用する方法がわかりませんシナリオと私は、私が学んでいる間、この日付の問題を今すぐ整理することをよりよく考えています。

$sql = "UPDATE deals SET deal_end_date = DATE_ADD(now(), INTERVAL $my_expiry DAY)";

今の私の学習スタイルは、基本に関する40時間のチュートリアルを見てから、Webサイトを作成することでした。Webサイトの各部分で異なる問題に遭遇し、それをコーディングして少しずつ学習する方法を研究しています。これは、マニュアルを読むよりもはるかにやる気を起こさせると思います。

助けていただければ幸いです。私が学んでいるのは、コードを読みやすくするためにダムダウンしている可能性があるため、後でコードを削除することを検討できますが、それをよりよく理解し、ソリューションがより読みやすい形式であるかどうかを確認したいと思います。

4

1 に答える 1

0

クエリを作成する方法は、無効な構文になります。デバッグの目的で、代わりに作成された文字列をダンプしてみてください。引用符が間違っていることがわかります。

間違い:

INSERT INTO deals (end_date) VALUES ('2012-07-12 08:17:00, 2012-07-12 08:17:00, 2012-07-12 08:17:00');

正しいのは次のようなものです。

INSERT INTO deals (end_date) VALUES ('2012-07-12 08:17:00', '2012-07-12 08:17:00', '2012-07-12 08:17:00');
于 2012-07-27T08:01:25.757 に答える