2012-04-18 8 views
0

は、いくつかのサンプルDBコードです:PHP 5で非同期でmysql_query()を使用する呼び出しはありますか?ここ

理論的に
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); 

ありがとうございます。

+0

その他の回答は正しいです。それは順次です。 しかし、スクリプトを続行する前に、mysqlからの応答をチェックすることができます。 私はあなたがこれをやっていないと思っています。そうでなければ、連続した問題は解決しません。 – HappyTimeGopher

+0

2つのトランザクションを包むような音は、同時アクセスの問題を解決します。 – halfer

答えて

2

を返しますない行やテーブル全体のいずれかをロックする方法です。これは次のように役立ちます:http://dev.mysql.com/doc/refman/5.5/en/locking-issues.html

2人以上のユーザーが同じテーブルや行で作業している場合、いわゆる競合条件が通常適用されることに注意してください。

P.S.古代のmysql_*関数を使って新しいコードを書くべきではありません。彼らはもはや維持されておらず、コミュニティはdeprecating themのプロセスを開始しています。代わりに、PDOまたはMySQLiprepared statementsと使用する方法を熟慮する必要があります。あなたがPDOに行くことに決めたら、ここには良いtutorialです。

0

んが、もちろん、それはあなたが探しているもの、それは機能が終了するまでに移動することはありません、順次実行していないと

関連する問題