我想从数据库中的几个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代码写得不好。。。
尝试添加一个空格:
$query = "INSERT INTO ". $name_of_the_file ...
通过echo
输出SQL总是值得的,以确保它看起来像您期望的样子。
编辑:
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直接粘贴到数据库中,看看它是否会给您带来错误。