0

サンプル DB コードを次に示します。

mysql_query("DELETE FROM table1 WHERE info1 = 'blah'");
mysql_query($personal_query);

理論的には、最初の行が DELETE を完了する前に 2 行目が実行される可能性はありますか? もしそうなら、コードを非同期にしないようにするにはどうすればよいですか? 次に進む前に、DELETE が完了していることを確認する必要があります。戻り値を取得するだけでこれを解決できますか?

$result = mysql_query("DELETE FROM table1 WHERE info1 = 'blah'");
mysql_query($personal_query);

ありがとう。

4

2 に答える 2

2

あなたが探しているのは、行またはテーブル全体をロックする方法です。これが役立つはずです:http://dev.mysql.com/doc/refman/5.5/en/locking-issues.html

2 人以上のユーザーが同じテーブル/行で作業している場合、いわゆる「競合状態」が通常適用されることに注意する必要があります。

PSmysql_*古い関数を使用して新しいコードを記述しないでください。それらはもはや保守されておらず、コミュニティはそれらを非推奨にするプロセスを開始しています。代わりに、準備済みステートメントでPDOまたはMySQLiを使用する方法を学習する必要があります。PDO を使用することに決めた場合は、ここに良いチュートリアルがあります。

于 2012-04-18T22:28:53.293 に答える
0

いいえ、もちろんそうではありません。順番に実行され、関数が終了して戻るまで先に進みません。

于 2012-04-18T22:24:49.647 に答える