MySQLのドキュメントでは、トランザクションの後mysql_affected_rows
の使用についての注意事項がありますコミット: http://php.net/manual/en/function.mysql-affected-rows.phpPDOStatement :: rowCountはPDO :: commitの後に使用すると結果を返しますか?
注:取引
トランザクションを使用している場合は、にmysql_affected_rowsを(呼び出す必要があります)後COMMITの後ではなく、INSERT、UPDATE、またはDELETE問合せ。PDO
オブジェクトを使用しているときhttp://www.php.net/manual/en/pdostatement.rowcount.phpが、これは、影響を受けた行がINSERT、UPDATE後にカウントまたはDELETEクエリが影響することはありませんコミットどういう意味:
しかし、PDOStatement::rowCount
ドキュメントには、このようなメモがありませんか?
コミット後、 'affected_rows'の意味が不明瞭になります。 ENTIREトランザクションの影響を受ける行の総数ですか?または、トランザクション内の最後の操作を実行した行の数だけですか? –
@MarcBそれは、 'PDOStatement-> rowCount()'で、つまり 'PDO-> rowCount()ではない、ということです。ロールバックされたネストされたトランザクションがあれば、したがって、最後のトランザクションではなく最後のクエリを行カウントするべきです(SHOULD)。 – Ozzy
mysql_affected_rows()は、PDOStatement-> rowCount()を実行する別の方法です。 両方を実行できるのは、MySQLが完了した後だけです。そうしないと、影響を受ける行が存在しないためです。 –