我收到42000 PDO错误,我知道这与MySQL保留字有关,我把所有列名都放在反引号中。但是,这还没有解决我的问题。我在Windows 10上使用Xampp,我想知道它是Apache还是MySQL错误而不是PHP语法错误?
class ItemList {
private $pdo;
public function add() {
$stmt = $this->pdo->prepare("INSERT INTO `item` (`ID`, `userID`, `name`, `description`, `price`, `link`, `image`)
VALUES (NULL, :userID, :name, :description, :price, :link, :image)");
$stmt->execute(array(':userID' => $_SESSION['userID'],
':name' => $_REQUEST["name"],
':name' => $_REQUEST["name"],
':description' => $_REQUEST["description"],
':price' => $_REQUEST["price"],
':link' => $_REQUEST["link"],
':image' => $_REQUEST["image"]
));
}
}
我知道这可能是一个愚蠢的简单回答,我可能只是陷入困境,我知道已经有一些类似的问题。但是,非常感谢任何帮助,谢谢你提前。
答案 0 :(得分:1)
似乎您将空值分配给不承认它的列。
如果您使用的是自动增量ID,则可以省略value子句中的null值和into子句中的id引用
<form action="selectAselectB.php" method="post">
答案 1 :(得分:0)
$stmt = $this->pdo->prepare("INSERT INTO item
( userID, `name`, description, price, link, image)
VALUES ( :userID, :name, :description, :price, :link, :image)");
name是MySQL中的保留字,你只需要在反引号中使用它,你的语句也不需要NULL值。