2012-07-11 60 views
0

我想从数据库中的几个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定义

$mysqli->query($query); 

和:

$mysqli = new mysqli($dbhost, $dbuser, $dbpass, $dbname); 

新编辑:

那么它实际上是SQL代码写得很糟糕......

回答

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直接粘贴到数据库中,以查看它是否会给您一个错误。

+0

-1为空间建议。添加一个空格不会做任何事情。 +1回显建议。总是一个好主意,当你的SQL不工作,因为你期望回声出生成的语句。 – Jeremy1026 2012-07-11 17:57:40

+0

感谢您的支持!我现在测试它。 – user1468223 2012-07-11 18:01:12

+1

@ Jeremy1026 - 你可能想检查并查看我添加空间的位置。 – andrewsi 2012-07-11 18:02:56