php PDO准备的语句不';I don’我没有按预期工作
可能是重复的,但这一次我浪费了几个小时php PDO准备的语句不';I don’我没有按预期工作,php,mysql,pdo,Php,Mysql,Pdo,可能是重复的,但这一次我浪费了几个小时 $stmt=$mysql->prepare(" insert into test_booked_tickets(book_id, ticket_id, num_people) values(:book_id,:ticket_id,:num)"); echo (int)$ticket->id."<br/>"; echo (int)$tick
$stmt=$mysql->prepare(" insert into test_booked_tickets(book_id, ticket_id, num_people) values(:book_id,:ticket_id,:num)");
echo (int)$ticket->id."<br/>";
echo (int)$ticket->number_people."<br/>";
echo (int)$booking->id."<br/>";
$stmt->bindValue(":ticket_id", (int)$ticket->id);
$stmt->bindValue(":num", (int)$ticket->number_people);
$stmt->bindValue(":book_id", (int)$booking->id);
try{
$stmt->execute();
}
catch(PDOException $e){
echo "catched <br/>";
echo $e->errorInfo;
}
$stmt=$mysql->prepare(“插入测试预订的票证(图书id、票证id、人数)值(:图书id、:票证id、:num)”);
echo(int)$ticket->id.“
”;
echo(int)$ticket->number_people.“
”;
echo(int)$booking->id.“
”;
$stmt->bindValue(“:ticket\u id”,(int)$ticket->id);
$stmt->bindValue(“:num”,(int)$ticket->number\u人);
$stmt->bindValue(“:book_id”,(int)$booking->id);
试一试{
$stmt->execute();
}
捕获(PDO$e){
回声“捕捉到
”;
echo$e->errorInfo;
}
其他查询工作正常。这些是echo返回的值
30
1
10
它不会进入catch,也不会插入到表中…谢谢大家的有用评论,我在数据库中输入了一个错误,就是列名。 感谢A.O.提供的最有用的评论
并感谢其他人提供的其他有用建议。错误,如果有?您正在检查它们吗?PDO异常不会返回任何内容,也不会返回php错误。您是否启用了ERRMODE_异常?如果没有,是否检查了
execute()
中的返回值?插入后是否检查了$stmt->rowCount()
?您是否在mysql客户端中手动尝试过SQL?添加$mysql->setAttribute(PDO::ATTR_ERRMODE,PDO::ERRMODE_异常)代码>在初始化$mysql之后,还有一个想法:如果您在应用程序之前的某个地方启动了一个事务,而忽略了提交,那么当事务回滚时,该行将被丢弃。