我想取消两个查询,如果两个中的一个失败,我的测试执行第一个Requette,虽然第二个搁浅
public function testCommit(){
$host = "localhost";
$db = "agm_gs";
$user = "root";
$password = "";
$conn;
$conn = new mysqli($host, $user, $password, $db);
$sql1 = 'INSERT INTO livreur (id_livreur, code_livreur, nom_livreur, pre_livreur) VALUES (NULL, \'L001\', \'nom1\', \'pre1\')';
$sql2 = 'INSERT INTO otherTable XXXXXXXXXXincorrect queryXXXXXXXX';
try
{
$conn->begin_transaction();
$conn->autocommit(FALSE);
$conn->query($sql1);
$conn->query($sql2);
$conn->commit();
echo 'Sucess transaction';
}
catch(PDOException $e)
{
$conn->rollback();
echo ' Error transaction <br />' . $e->getMessage();
}
}
这是我的插入结果
答案 0 :(得分:1)
试试这个: -
$sql1 = 'INSERT INTO livreur
id_livreur, code_livreur, nom_livreur, pre_livreur)
VALUES (NULL, \'L001\', \'nom1\', \'pre1\'),
(NULL, \'L002\', \'nom2\', \'pre2\')';
使用VALUES语法的INSERT语句可以插入多行。至 执行此操作,包括多个列值列表,每个列值都包含在其中 括号,用逗号分隔。