尝试创建一个简单的事务,将数据插入到mysql数据库中。除了没有插入数据库之外,代码运行顺利:
$db->beginTransaction();
$singleadd = $db->prepare("INSERT INTO games VALUES (:seller, :cardset, :card, :quantity, :quality, :price)");
$singleadd->bindParam(':type', $type, PDO::PARAM_STR);
$singleadd->bindParam(':gameset', $gameset, PDO::PARAM_STR);
$singleadd->bindParam(':game', $game, PDO::PARAM_STR);
$singleadd->bindParam(':quantity',$quantity,PDO::PARAM_INT);
$singleadd->bindParam(':quality', $quality, PDO::PARAM_STR);
$singleadd->bindParam(':price', $price, PDO::PARAM_INT);
try {
$singleadd->execute();
}
catch(PDOException $e) {
$db->rollBack();
echo $e->getMessage();
$db = null;
exit();
}
所有数据都已正确定义。当我提交表单时,我没有错误,但是当我检查我的数据库时没有添加任何数据......
答案 0 :(得分:0)
您的bindParam
语句中未定义您的命名占位符。
在你的SQL中你有:
(:seller, :cardset, :card, :quantity, :quality, :price)
并在您的bindParam
陈述中:
:type, :gameset, :game, :quantity, :quality, :price
请注意,seller
,card
和cardset
未定义....
答案 1 :(得分:-1)
也许指定要将数据插入哪些列?
prepare("INSERT INTO games (col1, col2, col3, etc) VALUES (v1, v2, v3, etc)");