SimpleXMLを使用してアプリにロードされたxmlドキュメントのノードからデータを保存しようとしています。以下は私のコードですが、致命的なエラーが発生するため、SQLステートメントに問題があります。
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
db構造:
Table: Producers
id INTEGER PRIMARY KEY,
producerid INT,
name TEXT,
address TEXT,
zipcode INT,
town TEXT,
url TEXT,
imgurl TEXT