2012-07-11 42 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