私はPHPの学習者です。このコミットおよびロールバックプロセスは、各行でタスクを実行します。一度にコミットしてロールバックするにはどうすればよいですか?PHPとMySQLでのトランザクションの使用
あなたは私がどこか$result
が、それは次のようになります真
がないかどうかを確認するために$bool
を使用し、ループの外にコミットする必要が
<?php
$con = mysql_connect('localhost','user', 'abcdefg');
if(!con)
{
echo "Can't connect to db.";
}else {
mysql_select_db('test');
}
if(!file_exits('test.csv')
{
echo "Can't find the file.";
}
$ar_1 = file('test.csv', FILE_IGNORE_NEW_LINES);
foreach ($ar_1 as $ar1)
{
$test = explode(",", $ar1);
$sql = "SELECT * FROM DB WHERE CD = '$test[0]'";
$result = mysql_query_($sql);
$sql = "INSERT INTO DB(CODE) VALUES ('$test[0]');";
$result = mysql_query($sql);
if($result === true)
{
//Commit
$sql = "commit";
mysql_query($sql);
echo "Committed";
}else {
//Rollback
$sql = "rollback";
mysql_query($sql);
echo "Rollback";
}
}
mysql_close($con);
?>
あなたはすべてのエラーを取得するのですか?はいの場合はここでそれを述べた.. – Priyank
ループのコミットとロールバックを移動すると、あなたはforeachでコミットしている! –
私はエラーは発生しませんでしたが、毎回コミットしてロールバックする必要がありました。 – Manish