有这样一段代码,怎么取也取不到结果集的数目....请各位大神看看...
$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 '<div class="nasdao_table">';
echo '<div id="container">';
echo '<div id="content">';
echo '<table align="center" cellspacing="0" cellpadding="0">';
echo '<tr>';
echo '<th>用户名</th>';
echo '<th>密码</th>';
echo '<th>登录IP</th>';
echo '<th>登录时间</th>';
echo '<th>登录状态</th>';
echo '<th>尝试次数</th>';
echo '<th>在线状态</th>';
echo '</tr>';
while($row=$result->fetch()){
echo '<tr>';
echo '<td>'.$row['name'].'</td>';
echo '<td>'.$row['password'].'</td>';
echo '<td>'.$row['ip'].'</td>';
echo '<td>'.$row['logintime'].'</td>';
echo '<td>'.$row['status'].'</td>';
echo '<td>'.'1'.'</td>';
echo '<td>'.'在线'.'</td>';
echo '</tr>';
}
echo '</table>';
echo '</form>';
echo '</div>';
echo '</div>';
echo '</div>';

解决方案 »

  1.   

    $result = $stmt->fetch(PDO::FETCH_NUM);
    echo $result[0] ; //这个才是
      

  2.   

    请问那是这样写吗?
    $stmt=$dbc->prepare('select * from loginlog');
        $rows=$stmt->execute();
    $rowsNum=$rows->fetch(PDO::FETCH_NUM);
      

  3.   

    LZ应该是$stmt=$dbc->prepare('select * from loginlog');
        $rows=$stmt->execute();
    $rowsNum=$rows->fetch(PDO::FETCH_ASSOC);
    print_r($rowsNum->rowCount());
      

  4.   

    上面的有点小问题,是print_r($rows->rowCount());
      

  5.   

    上面的有点小问题,是print_r($rows->rowCount());
    Fatal error: Call to a member function fetch() on a non-object i
    $stmt=$dbc->prepare('select * from loginlog');
        $rows=$stmt->execute();
    $rowsNum=$rows->fetch(PDO::FETCH_ASSOC);
    $rowsN=$rows->rowCount();
      

  6.   

    $stmt=$dbc->prepare('select * from loginlog');
        $rows=$stmt->execute();
    $rowsNum=$stmt->fetch(PDO::FETCH_NUM); 
      

  7.   

    echo 一个array要rowCount();吗?
      

  8.   

    $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;
      

  9.   

    int PDOStatement::rowCount ( void )PDOStatement::rowCount() 返回上一个由对应的 PDOStatement 对象执行DELETE、 INSERT、或 UPDATE 语句受影响的行数。如果上一条由相关 PDOStatement 执行的 SQL 语句是一条 SELECT 语句,有些数据可能返回由此语句返回的行数。但这种方式不能保证对所有数据有效,且对于可移植的应用不应依赖于此方式。 
      

  10.   


    $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 '<div class="nasdao_table">';
    echo '<div id="container">';
    echo '<div id="content">';
    echo '<table align="center" cellspacing="0" cellpadding="0">';
    echo '<tr>';
    echo '<th>用户名</th>';
    echo '<th>密码</th>';
    echo '<th>登录IP</th>';
    echo '<th>登录时间</th>';
    echo '<th>登录状态</th>';
    echo '<th>尝试次数</th>';
    echo '<th>在线状态</th>';
    echo '</tr>';
    //while($tota=mysql_fetch_assoc($result)){
    while($row=$result->fetch()){
    echo '<tr>';
    echo '<td>'.$row['name'].'</td>';
    echo '<td>'.$row['password'].'</td>';
    echo '<td>'.$row['ip'].'</td>';
    echo '<td>'.$row['logintime'].'</td>';
    echo '<td>'.$row['status'].'</td>';
    echo '<td>'.'1'.'</td>';
    echo '<td>'.'在线'.'</td>';
    echo '</tr>';
    }
    echo '</table>';
    echo '</form>';
    echo '</div>';
    echo '</div>';
    echo '</div>';代码整体是这样的,但是页面老是报错
    Fatal error: Call to a member function fetchColumn() on a non-object 这个是为什么呢?
      

  11.   

     $rows=$stmt->execute();
        $rowsNum = $stmt->fetchColumn();
      

  12.   

    $stmt=$dbc->prepare('select count(*) from loginlog');
        $rows=$stmt->execute();
        $rowsNum = $rows->fetchColumn();
    是这样写的呀...报错~
      

  13.   

    本帖最后由 xuzuning 于 2013-06-26 15:38:19 编辑
      

  14.   

    PDO::prepare 返回一个 PDOStatement 对象,就是你的那个 $stmt
    而 PDOStatement::execute 返回的是一个逻辑值,表示执行成功与否
    如果你写作 $rows=$stmt->execute();
    那么 $rows 只是一个 true
    当然也就没有 fetchColumn 方法了,于是就报错了一是要看手册,不但要看用法,而且要学会看原型声明
    二是要学会看错误信息
      

  15.   


    嗯嗯  懂了,谢谢你...我一直是项目驱动方式学习php的,遇到问题才去翻手册...