我試圖保存數據從一個xml文檔中加載到SimpleXML應用程序中的節點。下面是我的代碼,但是SQL語句出錯了,因爲我得到了一個致命錯誤。嘗試保存到SQLite數據庫時發生致命錯誤
我不明白爲什麼會出現這種情況,因爲id(如下面的錯誤消息中提到的)用作要放入的值,而不是列。
那麼,我在這裏做錯了什麼?謝謝!
PHP:
$db;
$theProducers = simplexml_load_file('sources/producers.xml');
foreach ($theProducers->producer as $producer) {
$attr = $producer->attributes();
$producers[$i]['id'] = (int)$attr[0];
$producers[$i]['name'] = (string)$producer->name;
$producers[$i]['address'] = (string)$producer->address;
$producers[$i]['zipcode'] = (string)$producer->zipcode;
$producers[$i]['town'] = (string)$producer->town;
$producers[$i]['url'] = (string)$producer->url;
$producers[$i]['imgurl'] = (string)$producer->imgurl;
$i += 1;
}
try {
$db = new PDO('sqlite:ProducersDB.sqlite');
$db->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
}
catch(PDOException $e) {
die("Something went wrong: " . $e->getMessage());
}
for($i = 0; $i < count($producers); $i++) {
$sql = "INSERT INTO producers (producerid, name, address, zipcode, town, url, imgurl)
VALUES($producers[$i]['id'], $producers[$i]['name'], $producers[$i]['address'], $producers[$i]['zipcode'], $producers[$i]['town'], $producers[$i]['url'], $producers[$i]['imgurl']); ";
if(!$db->query($sql)) {
die("Couln't execute query!");
}
}
錯誤消息:
Fatal error: Uncaught exception 'PDOException' with message 'SQLSTATE[HY000]:
General error: 1 no such column: 'id'' in
/Applications/XAMPP/xamppfiles/htdocs/app/index.php:55 Stack trace: #0
/Applications/XAMPP/xamppfiles/htdocs/app/Labb2/index.php(55):
PDO->query('INSERT INTO pro...') #1 {main} thrown in
/Applications/XAMPP/xamppfiles/htdocs/app/index.php on line 55
分貝結構:
Table: Producers
id INTEGER PRIMARY KEY,
producerid INT,
name TEXT,
address TEXT,
zipcode INT,
town TEXT,
url TEXT,
imgurl TEXT