事务,mysql INSERT无法正常工作

时间:2013-12-30 21:49:53

标签: php mysql transactions

尝试创建一个简单的事务,将数据插入到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();
}

所有数据都已正确定义。当我提交表单时,我没有错误,但是当我检查我的数据库时没有添加任何数据......

2 个答案:

答案 0 :(得分:0)

您的bindParam语句中未定义您的命名占位符。

在你的SQL中你有:

(:seller, :cardset, :card, :quantity, :quality, :price)

并在您的bindParam陈述中:

:type, :gameset, :game, :quantity, :quality, :price

请注意,sellercardcardset未定义....

答案 1 :(得分:-1)

也许指定要将数据插入哪些列?

prepare("INSERT INTO games (col1, col2, col3, etc) VALUES (v1, v2, v3, etc)");