私は OOP が苦手で、スクリプトが必要です。私は最善を尽くしましたが、うまくいきません。誰かが私のために OOP スクリプトを作成できますか (これは小さなスクリプトです)。
関数が必要で、関数startTransaction()
内に 2 つのクエリを入れます。また、この関数内に変数を作成し($transaction_called=1)
、次に関数が呼び出されたときに、この変数にアクセスできるようにする必要があります。
2 番目の関数が必要ですstopTransaction()
。この関数内にもクエリがあり、内部で作成された変数にアクセスする必要がありますstartTransaction()
。
毎回、ランダム スクリプトで を呼び出し、startTransaction()
変数 $transaction_called を使用して、関数が呼び出されたかどうかを確認します。
これは私が持っているものですが、修正方法がわかりません。
class Foo
{
protected $_transaction_called = '0';
public function transactionCalled()
{
// code ...
$this->_transaction_called = '1';
}
public function startTransaction()
{
if(!$this->_transaction_called === '1') {
$this->transactionCalled();
mysql_query("START TRANSACTION", $db);
}else{
//do nothing, transaction already started
}
}
public function transactionStopped()
{
// code ...
$this->_transaction_called = '0';
}
public function stopTransaction()
{
if(!$this->_transaction_called === '1') {
$this->transactionStopped();
if($transaction_error==true){
mysql_query("ROLLBACK", $db);
}else{
mysql_query("COMMIT", $db);
}
}
}
}
//some random script:
$transaction_error=false;
startTransaction();
$query_1 = "UPDATE x1 SET X1='1' WHERE X1='x'";
$result_1 = mysql_query($query_1, $db);
if(!$result_1){$transaction_error=true;}
//query's, query's and more query's
stopTransaction();