PEARでレコード数の取得方法とは?

このQ&Aのポイント
  • PEARでのレコード数の取得方法を教えてください。
  • count(*)を使用してレコード数を取得する方法について教えてください。
  • DB_Error::fetchRow()メソッドを使用してレコード数を取得する際にエラーが発生しました。代わりにcount(*)を使用する方法を教えてください。
回答を見る
  • ベストアンサー

PEARでレコード数の取得

レコード数の取得でPEAR_DBで $sql = 'SHOW COUNT(*) FROM XXX'; $res = $db->query($sql); $rocordcnt = $res->fetchRow(); したら Fatal error: Call to undefined method DB_Error::fetchRow() になりました。 $sql = 'SHOW * FROM XXX';だったら$rocordcntに最初にヒットしレコードが 配列で入るのですが、count(*) を得るにはどうしたらよいですか? 他の方法のありますが、勉強のために count(*) の結果の取得を教えて下さい。

  • MySQL
  • 回答数1
  • ありがとう数1

質問者が選んだベストアンサー

  • ベストアンサー
  • alioth
  • ベストアンサー率48% (13/27)
回答No.1

> Fatal error: Call to undefined method DB_Error::fetchRow() の意味は、$res はDB_Errorクラスので、fetchRow()なんてメッソドは定義されていないよ。ということだから、 > $sql = 'SHOW COUNT(*) FROM XXX'; このクエリが間違っているということです。 PEARに限らず、このクエリはおそらく通らないでしょう。 $sql='SELECT COUNT(*) FROM XXXX';

関連するQ&A

  • PEAR DBでの行取得について

    PEAR::DBにてテーブルの内容は現在下記のようにしておりますが 明示的に例えば2行目のデータを取得したい場合はどのようにすれば良いでしょうか。 $res =& $db->query('select * from shouhin'); while ($row =& $res->fetchRow()) { }

    • ベストアンサー
    • PHP
  • PEARのエラーを救ってください。

    こんにちは,よろしくお願いします。 6行目 $rs = $db->query("SELECT * FROM member ORDER BY id ASC"); PEAR::DBで,上のようなクエリーを実行しようとすると次のようなエラーが出ます。 Fatal error: Call to undefined method DB_Error::query() in /home・・・・・/aaaa.php on line 6 PEAR::MDB2でも同じエラーが出ます。 また,PEARを使わないデータベースとの接続は,問題なくできます。 接続はうまくいっているようなのですが,原因と対処法を教えてください。よろしくお願いします。

    • ベストアンサー
    • PHP
  • PEARを使ったフェッチのしかた。

    いつもお世話になっています。 pear と phpを使ったclassを勉強しており 行き詰った点があったので教えてください。 **** class.php ************************ require_once("DB.php"); class DB_Class{ var $db_object;//DB::connectが入る var $db = "mysql"; var $db_user = "user"; var $db_host = "localhost"; var $db_name = "db_name"; var $pass = "pass"; function DB_Class(){ //コンストラクタ $db_string = $this->db."://".$this->db_user.":".$pass."@".$this->db_host."/".$this->db_name; $this->db_object = DB::connect($db_string); } } **** test.php ******************************** require_once("class.php"); $obj = new DB_Class(); $sql = "select * from TEST_TABLE"; $res = $obj->db_object->query($sql); while($row =$res->fetchRow(DB_FETCHMODE_ASSOC)){ print("<td>".$row["TEST"]."</td>"); } class.phpファイルのメンバ変数 var $db_objectにDB::connectが入っており、 test.phpでfetchRowを使ってDBの内容を 取り出したいのですが、 fetchRowメソッドが見つからないというエラー がでます。 それまでのqueryメソッドまではエラーがなく 呼び出せます。 while($row =$res->fetchRow(DB_FETCHMODE_ASSOC)) ここを $res->$obj->db_object->fetchRowや $res->$obj->$this->DB_object->fetchRowや とにかく色々な方法を試してみたのですが うまくいきませんでした。 どなたかご教授お願い致します。

    • ベストアンサー
    • PHP
  • php pear mdb2に質問です。

    php pear mdb2に質問です。 以下の関数でエラーが出ます。 間違っているところがあれば、回答お願いします。 function product_info($id) { global $db; $res = $db->query("SELECT * FROM product WHERE id=?", array($id)); if ($res != null) { $row = $res->fetchrow(MDB2_FETCHMODE_ASSOC); return $row; } return null; }

    • ベストアンサー
    • PHP
  • Pear::DBで、インサートしたプライマリーキーを取得したい

    宜しくお願い致します $dbはPear::DBを使用するとして... $db = DB::connect($dsn); $sql = "insert into Hoge (name) values (\"Name\")"; $res = $db->query($sql); これでDBに一行追加されるわけですが このときに追加した行のプライマリーキーを取得したいと考えています 何かいい手はございますでしょうか?

    • ベストアンサー
    • PHP
  • PHPのPEAR:DBでPostgreSQLを使用時、カラム名でデータが取得できない

    PHPのPEAR::DBのサンプルを公開しているサイトから以下のソースを引っ張ってきて、試してみました。すると、少しおかしな現象が発生したので、ご質問させていただきます。 ------------------------------ $dsn = "pgsql://postgres:pass@localhost/postgres"; $db = DB::connect($dsn); if (PEAR::isError($db)) { die($db->getMessage()); } print('接続に成功しました<br>'); $sql = 'select * from "USER_TBL"'; $res =& $db->query($sql); if (PEAR::isError($res)) { die($res->getMessage()); } while ($row =& $res->fetchRow()) { print($row['ID']); print($row['NAME'].'<br>'); } ------------------------------ 接続は問題なかったのですが、データベースからデータを取得する「print($row['ID']);」の部分が動かず、<br>だけ出力されてしまいます。IDのカラム名をダブルクォーテーションで囲っても、値が出てきません。ところが、print($row[0]);などのように、数値を指定してやると、その部分が出力されます。 また、カラム名を小文字に変えてみたりもしましたが、やはりそれでもデータは取得できませんでした。 理由がよく判らないのですが、カラム名でデータを引っ張ってきたいと思います。解決方法はありませんでしょうか?

    • ベストアンサー
    • PHP
  • pear MDB2からレコードを配列で取得したい

    教えて頂けますか? 経験浅いのでわからないのですが、 pear MDB2からレコードを配列で取得したいのですが、 私が知っているfetchRowでは、一件ずつなので whileで回して配列に入れ直すのでしょうか? それとも配列として取得出来るメソッドがあるのでしょうか? どのようにするのでしょうか? 日本語マニュアルのありかが分からないので 教えて頂ければ助かります。 よろしくおねがいします。

    • ベストアンサー
    • MySQL
  • PEARのgetOneでレコードが見つからなかったときの動作?

    PEARを使い始めたばかりです。 $sql = "select name from table where id = 1"; $name = $db->getOne($sql); とやると name が返されるのですが、レコードが見つからなかったときの動作はどこかで明記されているのでしょうか? 試してみたら '' (空文字列)が帰ってきたのですが、これだと本当に空文字列が入っているデータと区別がつかないのではないかと思います。 PEAR::isError() では、エラーの扱いにはなっていないようで、検出できませんでした。 select を投げる前に件数を数えなければわからないのでしょうか? すいませんが、教えてください。

    • ベストアンサー
    • PHP
  • PEAR DBのupdateについて

    PEAR DBにて複数のデータを一度にUPDATEにて更新しようと思っているのですが、うまくいきません。 foreach($data as $value){   $SQL = "update `table_name` set `id` = '" .addslashes($value). "';"; } $res = $this->db->query($SQL); まず、update分をデータ分foreachにて溜め込み、一気にクエリを投げております。insert文の場合はうまく処理してくれるのですが、updateの場合はエラーが返ってきてしまい、処理してくれません。updateの場合、PEAR DBでは不可能なのでしょうか? お分かりになる方、ご教授ください。よろしくお願いいたします。

    • 締切済み
    • PHP
  • MySQL テーブルの存在チェックでエラー

    宜しくお願いします。 環境 php5 MySQL5.6 PEAR (mdb2) Smarty レンタルサーバー(ロリポップ:チカッパ)でテスト確認 ---------------- データーベースにテーブルが存在するかどうかのチェックについてお聞きします。 下記コードをご確認の上よろしくお願いします。 テーブルが存在しない時は、エラーオブジェクトがかえるのでしょうか? それとも0(ゼロ)などの数値がかえるのでしょうか? また、テーブルが存在しないかどうかのチェックは下記のようにすれば大丈夫でしょうか? ------------------------------------.. //$mdb2にはDBへの接続情報はきちっと格納されています。 $sql = "SHOW TABLES FROM dbname LIKE 'tablename'"; $request = $mdb2->query($sql); //★ if($request->fetchRow()){    //※テーブルが見つかった場合の処理 }else{ //※テーブルが見つからない場合の処理 } ------------------------------------ 上記を実行すると、 テーブルが存在しない際は、エラーとなります。 ※ Call to undefined method MDB2_Error::fetchRow() テーブルが存在してるときは、エラーとなりません。 そもそも、テーブルの存在確認で、テーブルが存在しない際は、 エラーオブジェクトがかえるようになっているのでしょうか? それともエラーとはならず、0など値が返るもんでしょうか? ★の位置でチェックすると、エラーオブジェクトが返ってきています。 if (PEAR::isError($request)){ echo $sth->getDebugInfo(); exit(); } その為、★より以下を実行されていなく、 ※ Call to undefined method MDB2_Error::fetchRow() のエラーがでて引っかかってると思います。 実現したいこととしては、 DBにテーブルが無いときは、新規にテーブルを作成する。 というものです。 もし、 if($request->fetchRow()){ ・・・・ }else ・・・・ } に問題があれば修正したいので、最良の書き方を教えていただくとありがたいです。 どうぞ宜しくお願いいたします。

    • ベストアンサー
    • PHP