我目前正在尝试使用PHP创建脚本来更新几个SQLite表。我有以下功能,给定一个特定的城市,搜索国家/地区并在目标表中对其进行更新。
function fillCountry($city, $db) {
$statement = $db->prepare('SELECT country, iso3 FROM cities WHERE city= :city;');
$statement->bindValue(':city', $city);
$result = $statement->execute();
$resx = $result->fetchArray(SQLITE3_ASSOC);
if(!empty($resx['country'])){
$db->exec('UPDATE wikivoyage_listings SET country = "' . $resx['country'] . '" WHERE article = "' . $city . '";');
$db->exec('UPDATE wikivoyage_listings SET iso3 = "' . $resx['iso3'] . '" WHERE article = "' . $city . '";');
} else {
echo "Not Good";
}
}
运行此代码时,我收到以下警告:
PHP Warning: SQLite3::exec(): no such column: country in /vagrant/connect.php on line 23
PHP Warning: SQLite3::exec(): no such column: iso3 in /vagrant/connect.php on line 24
wikivoyage_listings表具有以下架构:
CREATE TABLE wikivoyage_listings (id INTEGER PRIMARY KEY, title VARCHAR(128), language VARCHAR(2), article VARCHAR(128), type VARCHAR(64), wikidata VARCHAR (64), wikipedia VARCHAR(64), description VARCHAR(4096), latitude DECIMAL(10, 8), longitude DECIMAL(11, 8), country VARCHAR, iso3 VARCHAR);
表中存在这些列,但是以某种方式将它们考虑在内?
关于为什么会发生这种情况的任何想法?我可以添加任何其他信息吗?