0

我想从数据库中的几个 CSV 文档中加载数据。

问题是文件有一个表,因此表名必须存储在一个由循环逐步更新的变量中。表已创建,但之后脚本失败;什么都没有发生,我的表格和他们的字段总是有 0 行。

我认为我的想法是可行的,因为一些主题以这种方式描述了一些技巧,但在我的情况下没有任何作用。

这是我失败的代码:

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

where$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 ...

始终值得通过输出您的 SQLecho以确保它看起来像您期望的样子。

编辑:

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

您需要在第二个字段的末尾添加一个撇号:

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

我还建议您研究 PDO 之类的东西,以使您的代码更健壮、更安全。

您也可以尝试将您的 SQL 直接粘贴到数据库中,看看它是否会给您一个错误。

于 2012-07-11T17:53:21.633 回答