table1 の更新が成功した場合にのみ、以下のコードで table2 を更新するにはどうすればよいですか?
$sql="update table1 set col1='abc' where col2='1'";
$result=mysql_query($sql);
if(that is success)
{
$sql="update table2 set col1='cde' where col2='1'";
$result=mysql_query($sql);
}
マニュアルには、更新が機能した場合は更新の戻り値が true であり、そうでない場合は false であると記載されているため、先に進んで の値をチェックして、更新が機能したかどうかを確認できます$return
。
クエリがエラーを引き起こさない限り、$result は常に true になるため、$result だけを使用しないでください。Where 句がヒットしなかった場合、何も更新されず、エラーは発生しません。したがって、結果は依然として true です。
更新されたレコードの数を知るためにアレックスが提案したように、mysql_affected_rows を使用します。
そうするif ($result && mysql_affected_rows() )
...