由于某种原因,我得到了这个错误,但我不是在寻找一个名为aaron
的列。
代码:致命错误:未捕获异常'PDOException'与消息'SQLSTATE[42S22]:列未找到:1054未知列'Aaron'在'字段列表"在/home/stretch045/public_html/scripts/Auth .php:15堆栈跟踪:#0/home/stretch045/public_html/scripts/Auth .php(15): PDO->准备('INSERT INTO use…')#1/home/stretch045/public_html/index.php(35): Auth->checkToken('94257b73ea4ed51…')#2 {main}抛出在/home/stretch045/public_html/scripts/Auth .php第15行
$conn = $this->db;
$stmt = $conn->prepare("UPDATE users SET rating='".$xml->rating."', atc='".$xml->ratingatc."', pilot='".$xml->ratingpilot."', division='".$xml->division."' WHERE vid='".$xml->vid."'");
$stmt->execute();
if($stmt->rowCount()==0){
$stmt = $conn->prepare("INSERT INTO users (vid, fname, lname, rating, atc, pilot, division) VALUES (".$xml->vid.",".$xml->firstname.",".$xml->lastname.",".$xml->rating.",".$xml->ratingatc.",".$xml->ratingpilot.",".$xml->division.")");
$stmt->exec($stmt);
echo 'data inserted into db';
}
在第二个查询中,您没有在字符串周围加上引号。因此,它将包含'aaron'的变量视为一列。
这个问题最好通过实际使用参数化查询来解决。
$query = "INSERT INTO users (vid, fname, ...) VALUES (:vid, :fname, ...)";
$stmt = $conn->prepare($query);
$stmt->execute(['vid'=>$xml->vid, 'fname'=>$xml->fname, ...]);