echo '
用户名 | ';密码 | ';登录IP | ';登录时间 | ';登录状态 | ';尝试次数 | ';在线状态 | ';
---|---|---|---|---|---|---|
'.$row['name'].' | ';'.$row['password'].' | ';'.$row['ip'].' | ';'.$row['logintime'].' | ';'.$row['status'].' | ';'.'1'.' | ';'.'在线'.' | ';
echo '';
echo '
ホームページ >バックエンド開発 >PHPチュートリアル >PDO は結果セットの数をどのように計算しますか?
有这样一段代码,怎么取也取不到结果集的数目....请各位大神看看...
$stmt=$dbc->prepare('select count(*) from loginlog');
$rows=$stmt->execute();
pageDivide($rows,10);
$result=$dbc->prepare('select * from loginlog order by logintime desc limit $sqlfirst,$shownu');
$result->execute();
echo'一共有'.$rows.'条登录记录';
echo '
用户名 | ';密码 | ';登录IP | ';登录时间 | ';登录状态 | ';尝试次数 | ';在线状态 | ';
---|---|---|---|---|---|---|
'.$row['name'].' | ';'.$row['password'].' | ';'.$row['ip'].' | ';'.$row['logintime'].' | ';'.$row['status'].' | ';'.'1'.' | ';'.'在线'.' | ';
LZ は $stmt=$dbc->prepare('select * from loginlog');
$rows=$stmt->execute();
print_r($rowsNum->rowCount());
LZ は $stmt=$dbc->prepare('select * from loginlog');
$rows=$stmt->query(); ;
$rowsNum=$rows->fetch(PDO::FETCH_ASSOC);
print_r($rowsNum->rowCount());
LZ は $stmt=$dbc->prepare('select * from loginlog');
$rowsNum=$rows-> ;fetch(PDO ::FETCH_ASSOC);
上記には若干の問題があります。それは print_r($rows->rowCount()); です。非オブジェクト i でのメンバー関数 fetch() の呼び出し
$stmt=$dbc->prepare('select * from loginlog');
$rows=$stmt->execute(); $rows->fetch(PDO ::FETCH_ASSOC);
$rowsN=$rows->rowCount();
$stmt=$dbc->prepare('ログインログから * を選択'); $stmt->execute() ;
$stmt=$dbc->prepare('ログインログから * を選択'); $stmt->execute() ;
$rowsNum= $stmt->fetch(PDO::FETCH_NUM);
配列をエコーします。 。 。 rowCount(); が必要ですか?
$stmt=$dbc->prepare('ログインログから count(*) を選択');
$stmt->execute();
$rowsNum=$stmt->fetch(PDO::FETCH_NUM); // 配列を返します
print_r($rowsNum);
または次のようにします:
$stmt=$dbc->prepare('select count(*) from loginlog');
$rowsNum = $stmt->fetchColumn();
echo $rowsNum;
PDOStatement::rowCount() 対応する PDOStatement によって実行された最後の DELETE、INSERT、または UPDATE を返します。 object ステートメントによって影響を受ける行の数。
関連する PDOStatement によって実行された最後の SQL ステートメントが SELECT ステートメントであった場合、一部のデータはこのステートメントによって返された行数を返す場合があります。ただし、このアプローチはすべてのデータに対して機能することが保証されていないため、ポータブル アプリケーションには依存しないでください。
$stmt=$dbc->prepare('select count(*) from loginlog');
$stmt->execute();
$rowsNum=$stmt->fetch(PDO::FETCH_NUM); //返回一个数组
print_r($rowsNum);
或者这样:
$stmt=$dbc->prepare('select count(*) from loginlog');
$stmt->execute();
$rowsNum = $stmt->fetchColumn();
echo $rowsNum;
$stmt=$dbc->prepare('select count(*) from loginlog');
$rows=$stmt->execute();
$rowsNum = $rows->fetchColumn();
pageDivide($rowsNum,10);
$result=$dbc->prepare('select * from loginlog order by logintime desc limit $sqlfirst,$shownu');
$result->execute();
//if($stmt){
/*$result=mysql_query('select * from loginlog order by logintime desc ');
$total=mysql_num_rows($result);
pageDivide($total,10);
$result=mysql_query("select * from loginlog order by logintime desc limit $sqlfirst,$shownu ");*/
echo'一共有'.$rowsNum.'条登录记录';
echo '
用户名 | ';密码 | ';登录IP | ';登录时间 | ';登录状态 | ';尝试次数 | ';在线状态 | ';
---|---|---|---|---|---|---|
'.$row['name'].' | ';'.$row['password'].' | ';'.$row['ip'].' | ';'.$row['logintime'].' | ';'.$row['status'].' | ';'.'1'.' | ';'.'在线'.' | ';
$rows= $stmt->execute();
$rowsNum = $stmt->fetchColumn();
$stmt=$dbc->prepare('ログインログから count(*) を選択');
$rowsNum = $rows->fetchColumn( );
このように書かれています... エラー~
この投稿は xuzuning によって最終編集されました: 2013-06-26 15:38:19
$rowsNum = $ stmt- >fetchColumn();
そうです、理由を教えてください。今後このような間違いをしないようにしたいです そして PDOStatement::execute は実行が成功したかどうかを示す論理値を返します
$ と書くとrows= $stmt->execute();
そうすると、$rows は true になります
まず、使い方だけでなく、マニュアルを読む必要がありますただし、プロトタイプ宣言の読み方も学びましょう
2 つ目は、エラー メッセージの読み方を学ぶ必要があります
PDO::prepare は、$stmt である PDOStatement オブジェクトを返します
そして、PDOStatement::execute は、実行が正しいかどうかを示す論理値を返します成功したかどうか
$rows=$stmt ->execute(); と書くと
その場合、$rows は単に true になります
最初は、マニュアルでは、使用方法だけでなく、プロトタイプ宣言の読み方も学びます
2 つ目は、エラー メッセージの読み方を学ぶことです
はい、はい、わかりました、ありがとう... 私は常にプロジェクト主導の方法で PHP を学習してきました。そして、問題が発生した場合にのみマニュアルを読みます...