我想將數據插入到CLOUD和IDC表中。BeginTransaction無法在PHP中工作
Cloudid是IDC表的外鍵,所以我想使用事務。
之前添加$conn->beginTransaction();
和$conn->commit();
,它工作正常,但沒有它們,它工作正常。
這裏是我的代碼:當數據庫使用InnoDB
作爲存儲引擎
<?php
if($_GET["act"]=="add")
{
try
{
$conn=new PDO('mysql:host=localhost;port=3306;dbname=xxx' , 'root' , 'xxxx');
//$conn->beginTransaction();
$query="
insert into CLOUD (name,date) VALUES('".$_POST['customerName']."','".$_POST['firstDay']."');
insert into IDC (name,id,phone,cloudid) VALUES('".$_POST['engName3']."','".$_POST['engID3']."','".$_POST['engPhone3']."',LAST_INSERT_ID());
insert into IDC (name,id,phone,cloudid) VALUES('".$_POST['engName4']."','".$_POST['engID4']."','".$_POST['engPhone4']."',LAST_INSERT_ID());
";
$stmt=$conn->query($query);
//$conn->commit();
echo "success";
}
catch(PDOException $e)
{
$conn->rollBack();
echo "connect failed!".$e->getMesage();
exit;
}
}
?>
SQL注入警報 –
所以當你使用它們時會發生什麼? –
當你使用'beginTransaction()'和'commit()'時會得到什麼錯誤? –