2

PHPを使用してMySQLデータベースをバックアップするために、既製のスクリプトを使用しています。結果のクエリを変数に格納します。

変数をエコーし​​、出力をコピーして MySQL コンソールに貼り付けると、完全に機能します。

しかし、「mysql_query」を使用して同じものを実行すると (減価償却されていることはわかっていますが、無視してください)、恐ろしい構文エラーが発生します。

これがエコー出力です(最初の2行):

値に挿入assign ('75085','rsam','CE0001/CZ0001/CPE183/CSC183','1','1','3.0','13','1','1','13', '2','10.00','117.00','0','0');INSERT INTO assign VALUES('75086','rsam','CE0001/CZ0001/CPE183/CSC183','1','2' ,'3.0','13','1','1','13','2','10.00','97.50','0','0');

そして、ここに正確なエラーがあります:

SQL 構文にエラーがあります。assign 'INSERT INTO VALUES('75085','rsam','CE0001/CZ0001/CPE183/CSC183','1','1'' 行の近くで使用する正しい構文については、MySQL サーバーのバージョンに対応するマニュアルを確認してください。1

私が明らかに欠けているものを誰かが指摘できれば、私は感謝します!

4

2 に答える 2

3

のドキュメントにあるようにmysql_query()

mysql_query()指定されたに関連付けられているサーバー上の現在アクティブなデータベースに一意のクエリ (複数のクエリはサポートされていませんlink_identifier) を送信します。

あなたは興味があるかもしれませんmysql_multi_query():

セミコロンで連結された 1 つまたは複数のクエリを実行します。

于 2013-10-12T03:43:25.397 に答える
2

は単一のステートメントに制限されてmysql_queryいますが、1 つのステートメントのみで複数のレコードを同じテーブルに挿入できるため、この状況を回避できます。

INSERT INTO assign (...)
VALUES(...),
VALUES(...);

これにより、問題になる可能性のあるラウンドトリップ レイテンシ (複数のmysql_query) が節約されます。

mysql での複数行の挿入を参照してください。

于 2013-10-12T03:54:54.457 に答える