0

これを理解できません:

$try1 = mysql_query("UPDATE com_users SET `choice_one` = 'president'");
$try2 = mysql_query("UPDATE com_users SET `choice_two` = 'president'");

echo mysql_error($try1);
echo mysql_error($try2);

その PHP コードは何もエコーせず、choice_one を変更せずに、choice_two を適切に変更します。

$try2 = mysql_query("UPDATE com_users SET `choice_two` = 'president'");
$try1 = mysql_query("UPDATE com_users SET `choice_one` = 'president'");

echo mysql_error($try1);
echo mysql_error($try2);

この PHP コードは何もエコーせず、choice_one を適切に変更しますが、choice_two は変更しません。

これらの更新コマンドの順序によって、コマンドがまったく機能しない可能性があるのはなぜですか?

4

1 に答える 1

2

クエリの順序は重要ではありません。表示されていない追加のコードがある場合は、投稿してください...

mysql_error()の最初のパラメーターは結果リソースではなく、接続リソースです。したがって、最初のエラーを取得するには、最初のクエリの直後に呼び出す必要があります。

$try1 = mysql_query("UPDATE com_users SET `choice_one` = 'president'");
// Call with no parameter right after the query it relates to.
echo mysql_error();

$try2 = mysql_query("UPDATE com_users SET `choice_two` = 'president'");
echo mysql_error();

句を使用していないことに注意してくださいWHERE。すべての行が最初に更新されます。これらのクエリを 2 回目に実行しようとすると (データをリセットしていない限り)、更新が必要な行はなく、クエリは効果がありません ( mysql_affected_rows() == 0)。

于 2012-07-27T00:40:09.647 に答える