0

私はphpスクリプトで以下のSQLを使用しています:

$sql1 = "LOAD DATA LOCAL INFILE 'test1.csv' INTO TABLE number1 (order_num,pname)";
$sql2 = "LOAD DATA LOCAL INFILE 'test1.csv' INTO TABLE number1 (order_num,pname) FIELDS TERMINATED BY ':'";
if ($result = $mysqli->query($sql)) {
    printf("<br>Section 4: %s",$mysqli->error);
    printf("|$result|$table");
} else {
    printf("<br>Section 5: %s",$mysqli->error);
}

適切に使用する$sql1と、データベースに 3 行が表示されます (適切なフィールドに分割されません)。エラーは返されませんでした。私が$sql2それを使用すると、メッセージが返されます:

"You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'FIELDS TERMINATED BY ':'.."

ENCLOSED BY を使用して、別の順序を試しました / 代わりに..私が考えることができるすべて。誰にも提案がありますか?

4

2 に答える 2

5

ドキュメントを確認してください... フィールド宣言は、宣言によって終了するフィールドの後に来る必要があります。

$sql2 = "LOAD DATA LOCAL 
            INFILE 'test1.csv' 
            INTO TABLE number1 
            FIELDS TERMINATED BY ':'
            (order_num,pname)";
于 2010-06-17T15:53:33.053 に答える
-1

はい、(order_num,pname) は無効です。フィールドを列名にマッピングするための構文が異なります。

于 2010-06-17T15:55:23.037 に答える