mysql:3853
From: Akihiko Shinohara <Akihiko Shinohara <sino@xxxxxxxxxx>>
Date: Thu, 28 Jun 2001 11:02:22 +0900
Subject: [mysql 03853] Re: update した件数をカウントしたい。
篠原です。 From: MAO <mao@xxxxxxxxxx> Subject: [mysql 03848] Re: update した件数をカウントしたい。 Date: Wed, 27 Jun 2001 22:41:36 +0900 Message-ID: <20010627224130.D593.MAO@xxxxxxxxxx> > > #SQL構文設定 > > $stmt = "update tbl_a set serial = 2 where uid = 1"; > > # 準備したSQL構文をデータベース上で実行 > > $rv = $dbh->do($stmt) || die "Cantprepare. Because of $DBI::errstr"; > この方法で実験してみました。 > 値が帰ってきました。 > 帰ってくる値は、 > Rows matched: 2 Changed: 1 Warnings: 0 > のChanged:の方のようです。 DBI::MySQL のマニュアルを注意深く読んでいると 影響のあった行(Changed)を調べるには、 $sth->rows 探した行(Matched)を調べるには、connectのdata_sourceに、 mysql_client_found_rowsを真にして設定し # DBI:mysql:database=$database;host=$host;mysql_client_found_rows=1 同じく、$sth->rows で、返ってくるようです。 ここから質問です。 今まで気にしてませんでしたが、他のデータベースでは、 どっちを返すのでしょう。クライアント的には、 Matchedの行を返してもらったほうが便利なような気がします。 ___________________________________________ / Akihiko Shinohara /Hoct*Systems.Co.,Ltd / / http://www.hoctsystem.co.jp/ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
3845 2001-06-27 19:00 [MAO <mao@xxxxxxxxxx>] update した件数をカウントしたい。 3846 2001-06-27 19:31 ┗[TSUTSUMI Thoru <tutu] 3848 2001-06-27 22:41 ┗[MAO <mao@xxxxxxxxxx>] 3852 2001-06-28 10:31 ┣[TSUTSUMI Thoru <tutu] 3856 2001-06-28 12:17 ┃┗["Kawai,Takanori" <GC] -> 3853 2001-06-28 11:02 ┗[Akihiko Shinohara <s] 3857 2001-06-28 12:31 ┗["Kawai,Takanori" <GC] 3860 2001-06-28 16:46 ┗[MAO <mao@xxxxxxxxxx>] 3861 2001-06-28 17:36 ┗[TSUTSUMI Thoru <tutu]