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 回答