2013-07-21 81 views
-1

我試圖插入一些值到我的MySQL數據庫使用PDO和foreach循環。當我這樣做時,它只會產生一個結果。使用PDO和foreach()

這裏是我的代碼:

$config['db'] = array(
'host' => 'localhost', 
'username' => 'root', 
'password' => '*NOT NEEDED*', 
'dbname' => 'demoScript' 
); 
$db = new PDO('mysql:host='.$config['db']['host'].'; dbname='.$config['db']['dbname'], $config['db']['username'], $config['db']['password']); 
$url = 'https://gdata.youtube.com/feeds/api/users/demoScript/uploads'; 
$xml = simplexml_load_file($url); 
foreach($xml->entry as $entry){ 
    $title = $entry->title; 
    $db->query("INSERT INTO videos VALUES('*','".$title."','*','*','*','*','*')"); 
} 

*排除例如

任何人有任何的代碼示例的工作。也許有人會看XML文件,看看是否我想的東西

編輯:這裏是我的數據庫是如何建立

Click for DB Schema

+0

循環工作在此處罰款!也許你在插入時遇到了一個獨特的價值問題。你可以顯示你的數據庫模式? – tlenss

+0

沒有唯一索引? – tlenss

+0

@tlenss只需單擊編輯部分下方的鏈接即可查看我的數據庫設置 –

回答

1

改變你這樣的代碼,這樣你可以回顯查詢,並且在一個查詢中添加批量記錄比每個查詢添加單個記錄更好

$query = "INSERT INTO videos VALUES "; 
foreach($xml->entry as $entry){ 
    $title = $entry->title; 
    $values[] ="('*','".$title."','*','*','*','*','*')"; 
} 
$query = $query.implode(",", $values); 
//echo $query 
$db->query($query); 
+0

在仔細查看代碼太久之後(對不起),我不認爲這是代碼錯誤。我執行了代碼,然後檢查了數據庫。沒有結果。我複製了頁面上回顯的查詢,並手動將其粘貼到數據庫中,並且它工作正常。它在發送到數據庫時一定遇到錯誤。 –