[PHP-users 29480] Re: numrows()のエラー?

shima tetuo mlmlml @ lily.freemail.ne.jp
2006年 6月 24日 (土) 00:56:22 JST


On Fri, 23 Jun 2006 23:15:36 +0900
"Y.Shimizu" <yshimizu @ prest-info.co.jp> wrote:

> Warning*: Missing argument 1 for numrows()
> 
> このようなエラーが出て、全てのデータが表示されてしまいます。
> 
> *pear\DB\mysql.php* on line *466*

どのようなコードを動かしているのか提示されてないですが、もしかしてデータ
ベースオブジェクトで直接このメソッドを呼んでいませんか?

例:
<?php
$db = new .....;
echo $db->numRows();
?>


------------------------------
pear/db/mysql.php の466行目付近
------------------------------
/**
* Gets the number of rows in a result set
*
* This method is not meant to be called directly.  Use
* DB_result::numRows() instead.  It can't be declared "protected"
* because DB_result is a separate object.
*
* @param resource $result  PHP's query result resource
*
* @return int  the number of rows.  A DB_Error object on failure.
*
* @see DB_result::numRows()
*/
function numRows($result)
{
$rows = @mysql_num_rows($result);
if ($rows === null) {
    return $this->mysqlRaiseError();
}
return $rows;
}

上で書かれていることが「直接呼ばずにDB_resultを使って」となっています。
通常であれば、このように使わないでしょうか?

<?php 
$db = new ....;

$result = $db->que...(....);
echo $result->numRows();
?>

DB_result::numRows() -- 結果セットの行数を取得する
http://pear.php.net/manual/ja/package.database.db.db-result.numrows.php

DB
http://pear.php.net/manual/ja/package.database.db.php

tetuo
mlmlml @ lily.freemail.ne.jp




PHP-users メーリングリストの案内