$db->fetchOne($sql)取一个字段的值
$db->fetchRow($sql)取一行数据
$db->fetchAll($sql)取一个二维数据一般这三个就差不多够用了

解决方案 »

  1.   

    一行一行取用fetch, 取全部的用fetchAll,没有fetchOne, fetchRow你的问题应该用rowCount();
    举例说明:$stmt = $dbh->prepare('select ...');
    $stmt->execute();
    echo $stmt->rowCount();我在mysql数据库上测试通过了,不知道mssql行不行?
      

  2.   

    回2楼:rowCount()是取insert,update,delete语句生效的行数吧手册上的原文我看得半懂:PDOStatement->rowCount() returns the number of rows affected by the last DELETE, INSERT, or UPDATE statement executed by the corresponding PDOStatement object. 
      

  3.   

    还有就是在分页的时候,以前可以用mssql_data_seek()
    但现在在pdo里面可以用什么呢?
      

  4.   

    看看手册吧
    PDOStatement::rowCount --  Returns the number of rows affected by the last SQL statement 应该是它
      

  5.   

    看看手册吧 
    PDOStatement::rowCount --  Returns the number of rows affected by the last SQL statement 但是对SELECT 语句返回roww无效
      

  6.   

    这要看PDO Driver,手册后面又说了!:)
    另外你说的mssql_data_seek() ,我觉得可以使用scrollable cursor实现,在使用
    fetch的时候指定开始位置!
      

  7.   

    看手册,里面有函数参考→PDO→
      

  8.   

    如果是分页的话可以考虑直接用sql实现。pdo里面貌似没有seek的功能
      

  9.   

    总结一下:1.rowcount 是返update,delete,insert语句所列改的行数,对select语句无效,至少我在php+mssql里面测试,永远都是返回0;
      没有办法的话只能select count(*)的办法.2.在分页的时候可以如7楼所说,用游标来实现(没怎么接触过,回头看手册吧)
      还可以如9楼所说,直接用sql实现,具体怎么弄可以说详细点么?
      

  10.   

    用了几天pdo 感觉容易出错就没用了
      

  11.   

    看样子还是迟些再用pdo了,结贴