ホームページ >バックエンド開発 >PHPチュートリアル >レコードを挿入するこのステートメントのどこが間違っているのでしょうか?何をするか

レコードを挿入するこのステートメントのどこが間違っているのでしょうか?何をするか

WBOY
WBOYオリジナル
2016-06-13 13:36:02910ブラウズ

レコードを挿入するこのステートメントのどこが間違っているのでしょうか?
どこかにデータベース レコードを挿入したところ、エラーが発生しました:
insert into Recipe(rent,deposit,paidup,createdtime,depositback,coperator) value(50,1,51,'2012-04-10 17:44) :47','0','zxy')SQL 構文にエラーがあります。MySQL サーバーのバージョンに対応するマニュアルで、行 1 の '17:44:47' 付近で使用する正しい構文を確認してください

時刻は $dt=date("Y-m-d H:i:s"); から取得されます。
このレコードが実際にテーブルレシートに挿入されていることを確認しました。

以下は phpmyadmin からコピーした便利なテーブル構造です:
フィールド タイプ 空 デフォルト 追加
id int( 11) No なし AUTO_INCREMENT
rent float No なし
deposit float No なし
paidup float No なし
depositback varchar(1) No なし
createdtime datetime No なし
cooperator varchar(30) )いいえ なし
dbtime datetime is NULL
dboperator varchar(30) is NULL

エラーが発生しても挿入が成功するのはなぜですか?
このエラーは何を意味しますか?

-----解決策--------------------------------
それは間違っているようには見えませんが、非常に奇妙です。
createdtime は datetime ではなく date 型であると思われます。これは、date 型が 2012-04-10 17:44:47 とその前の 2012-04-10 のみを受け入れるためです。 datetime 型は 2012-04-10 17:44:47 を受け入れます

phpmyadmin のクエリ結果ですが、それでも次の SQL ステートメントを実行することを推奨する必要があります
SHOW CREATE TABLE `receipt `;
結果を見てください
------解決策---------



あなた あなた組み立てられた SQL ステートメントを $database クラスにポストできます。
------解決策---------
私はそのような奇妙なことに遭遇したことがありません。
同じテーブル構造、同じ SQL ステートメントでテストを実行しましたが、問題は発生しませんでした
------解決策---------
テスト後は正常です。
$rent、$deposit、$total、および '$dt' の値が存在する必要があることに注意してください。これらの値が存在しない場合、合成された SQL に問題が発生します。エラーが発生します。
------解決策------------------
列数が値数と一致しません。これは、テーブル名(a, b, c) VALUES ('avalue', 'bvalue') に列値が欠落している場合など、書き込みエラーが発生したためです。構文を注意深く確認してください

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。