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之后,还有一个想法:如果您在应用程序之前的某个地方启动了一个事务,而忽略了提交,那么当事务回滚时,该行将被丢弃。