0

データベース内の複数のCSVドキュメントからデータをロードしたい。

問題は、ファイル用のテーブルがあるため、テーブル名をループによって段階的に更新される変数に格納する必要があることです。テーブルは作成されますが、その後スクリプトは失敗します。何も起こりません。私のテーブルとそのフィールドには常に0行があります。

いくつかのトピックがこのようにいくつかのヒントを説明しているので、私のアイデアは実行可能だと思いますが、私の場合は何も機能しません。

これは失敗する私のコードです:

$query = "INSERT INTO". $name_of_the_file." (id, content) values (". $arrayGenre[0].",'".trim($arrayGenre[1])."')";  

ここで$name_of_the_file、はループで作成されたテーブルを指し、最終的にはループの対象となるファイルを指します。


推奨事項に従って、スペースを追加し、次の方法でクエリを印刷します。

echo ("<br>". $query);

これが最初の行の例です。xxx置換の違反はありません:これらは主格データです。

INSERT INTO names.csv (id, url, content) values (1,'xxx_some_adressxxx,'agency: xxx')

期待どおりの結果であると言うのに十分なPHPはわかりませんが、それは適切なSQL要求のようであり、値は問題ありません。

スクリプトの次の行は次のとおりです。

$mysqli->query($query);

そして、私のスクリプトの冒頭で、$mysqli:の定義

$mysqli = new mysqli($dbhost, $dbuser, $dbpass, $dbname);

新しい編集:

まあそれは実際にはひどく書かれたSQLコードでした...

4

1 に答える 1

3

スペースを追加してみてください:

$query = "INSERT INTO ". $name_of_the_file ...

echoSQLを出力して、期待どおりの状態になっていることを確認することは常に価値があります。

編集:

INSERT INTO names.csv (id, url, content) values (1,'xxx_some_adressxxx,'agency: xxx')

2番目のフィールドの最後にアポストロフィを追加する必要があります。

INSERT INTO names.csv (id, url, content) values (1,'xxx_some_adressxxx','agency: xxx')

また、コードをより堅牢で安全にするために、PDOなどを調べることをお勧めします。

SQLをデータベースに直接貼り付けて、エラーが発生するかどうかを確認することもできます。

于 2012-07-11T17:53:21.633 に答える