0

http://us3.php.net/manual/en/pdostatement.rowcount.phpによると:

PDOStatement::rowCount() は、対応する PDOStatement オブジェクトによって実行された最後の DELETE、INSERT、または UPDATE ステートメントによって影響を受けた行の数を返します。

単一のクエリを使用して、個々の JOIN されたテーブルが影響を受けたかどうかを知ることは可能ですか? たとえば、次のクエリが与えられた場合、影響を受けたかどうかt1、および影響を受けたかどうかをどのように知ることができt2ますか?

$sql ='UPDATE t1 INNER JOIN t2 ON t2.t1_id=t1.id SET t1.foo=:foo, t2.bar=:bar WHERE t2.id=:id';
$stmt = db::db()->prepare($sql);
$stmt->execute(array('foo'=>123,'bar'=>321,'id'=>10));
$rows_t1=$stmt->rowCount();
$rows_t2=$stmt->rowCount();
4

2 に答える 2

0

INNER JOIN両方のテーブルで一致が見つかった場合にのみ結果が得られるようにします。

つまり、データベースがいずれかのテーブルの結果と一致しない場合、その行は結果セットに含まれません。

したがって、 から返される結果の数にはstmt->rowCount();、両方のテーブルの更新のみが反映されます。

于 2013-12-06T14:30:54.650 に答える