我想从数据库中的多个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代码写得很糟糕......
答案 0 :(得分:3)
尝试添加空格:
$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直接粘贴到数据库中,看看它是否会给您带来错误。