Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/71.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/apache/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
PDO和PHP事务未插入数据且未给出错误_Php_Mysql_Pdo - Fatal编程技术网

PDO和PHP事务未插入数据且未给出错误

PDO和PHP事务未插入数据且未给出错误,php,mysql,pdo,Php,Mysql,Pdo,我有oho和pdo代码tat在两个单独的sql表上执行一个事务。下面提供了代码 try{ echo " we begin transaction "; $dbh->beginTransaction(); $stmt2 = $dbh->prepare( "INSERT INTO `members`( `username`, `email`, `password`, `time_created`) VALUES

我有oho和pdo代码tat在两个单独的sql表上执行一个事务。下面提供了代码

try{    
    echo " we begin transaction ";
    $dbh->beginTransaction();   
    $stmt2 = $dbh->prepare( "INSERT INTO `members`( `username`, `email`, `password`, `time_created`) 
                  VALUES (:username , :email , :password , NOW())");

    $stmt2->bindParam(':username', $username , PDO::PARAM_STR);
    $stmt2->bindParam(':email', $email , PDO::PARAM_STR);
    $stmt2->bindParam(':password', $password , PDO::PARAM_STR); 

    $stmt3 = $dbh->prepare("INSERT INTO `members_groups` (`member_id` , `group_id`) 
                           VALUES((SELECT MAX(member_id) FROM members) , 
                               (SELECT group_id FROM groups WHERE permission = 0 ))");

    if($stmt2->execute() && $stmt3->execute()){
        $dbh->commit(); 
        echo "registered successfully";             
    }
}
catch (Exception $e){
    $dbh->rollback();
    echo "an error has occurred".$e.getMessage();
}   
但是代码被执行,数据不会插入表中,也不会产生错误。
但所有参数都已设置。

$e.getMessage()
应该是
$e->getMessage()在打开PHP标记后立即进行测试时,将错误报告添加到文件顶部。例如
是否已将PDO error mode属性设置为exception?另请查看,而不必在第二个查询中执行2次SELECT操作,这样PDO将生成
PDO exception