-9

PHP の関数mysql_affected_rows() (更新中)のすべての可能な戻り値を教えてください。また、戻り値はどのような状況ですか?

更新クエリが何も更新しなかった場合、またはエラーで停止した場合、-1 または 0 を返しますか? それは私の質問ですか?

4

2 に答える 2

4
  1. www.google.com
  2. mysql_affected_rows 、検索
  3. http://php.net/manual/en/function.mysql-affected-rows.php

成功した場合は影響を受けた行の数を返し、最後のクエリが失敗した場合は -1 を返します。

最後のクエリが WHERE 句のない DELETE クエリであった場合、すべてのレコードがテーブルから削除されますが、この関数は 4.1.2 より前のバージョンの MySQL ではゼロを返します。

UPDATE を使用する場合、MySQL は、新しい値が古い値と同じである列を更新しません。これにより、 mysql_affected_rows() が実際には一致した行数と等しくなく、文字通りクエリによって影響を受けた行数と等しくない可能性が生じます。

REPLACE ステートメントは、最初に同じ主キーを持つレコードを削除してから、新しいレコードを挿入します。この関数は、削除されたレコードの数に挿入されたレコードの数を加えた数を返します。

「INSERT ... ON DUPLICATE KEY UPDATE」クエリの場合、戻り値は、挿入が実行された場合は 1、既存の行の更新の場合は 2 になります。

重要:

use mysql_*非推奨であるため、使用しないでください

于 2013-06-14T09:17:55.537 に答える
2

FROMドキュメント

成功した場合は影響を受けた行の数を返し、最後のクエリが失敗した場合は -1 を返します。

最後のクエリが WHERE 句のない DELETE クエリであった場合、すべてのレコードがテーブルから削除されますが、この関数は 4.1.2 より前のバージョンの MySQL ではゼロを返します。UPDATE を使用する場合、MySQL は、新しい値が古い値と同じである列を更新しません。これにより、 mysql_affected_rows() が実際には一致した行数と等しくなく、文字通りクエリによって影響を受けた行数と等しくない可能性が生じます。

REPLACE ステートメントは、最初に同じ主キーを持つレコードを削除してから、新しいレコードを挿入します。この関数は、削除されたレコードの数に挿入されたレコードの数を加えた数を返します。

「INSERT ... ON DUPLICATE KEY UPDATE」クエリの場合、戻り値は、挿入が実行された場合は 1、既存の行の更新の場合は 2 になります。

于 2013-06-14T09:17:23.853 に答える