IT技术学习网
IT技术学习网
您的位置: 主页 > 编程技术 > php >

pdo判断取得select,query查询出来的行数

2014-11-05 19:19 来源: IT技术学习网原创 阅读:

pdo中有rowCount()方法,让人用以顾名思义的以为,计算select查询的函数,使用rowCount()比较合适。

然而对于大多数数据库,rowCount() 不能返回 SELECT 语句影响的行数。rowCount()更多的用于取得delete等语句所影响的行数

替代的方法是,使用 PDO::query() 来发出一条和原打算中的SELECT语句有相同条件表达式的 SELECT COUNT(*) 语句,然后用 PDOStatement::fetchColumn() 来取得返回的行数。这样应用程序才能正确执行。

<?php
$sql = "SELECT COUNT(*) FROM table_name WHERE id > 100";
$res = $conn->query($sql);

if ($res->fetchColumn() > 0) {  //如果count(*)的值大于0,表示有结果。

   echo "select语句取得了".$res->fetchColumn()."条结果";

   /* 发出一条真正的 SELECT 语句并操作返回的结果 */
   $sql = "SELECT name FROM table_name WHERE id > 100";

   foreach ($conn->query($sql) as $row) {
           echo "Name: " .  $row['NAME'] . "<br />;
   }
}

也就是说,pdo并没有直接的方法能很好的返回select查询得到的行数,只有替代方法:即用SELECT COUNT(*)语句,并用fetchColumn来取得结果,这个结果就等于真正的select查询得到的行数。

注意fetchColumn是取得第一列的值,不是第一行,别弄混了。

pdo判断取得select,query查询出来的行数
转载需注明出处:IT技术学习网 http://www.itjsxx.com/php/pdo_select_query_count.html

评论文章 pdo判断取得select,query查询出来的行数
评论列表(网友评论仅供网友表达个人看法,并不表明本站同意其观点或证实其描述)
  • DUBMo
    2016-12-04 20:38:22发表

    打开 uvu.cc/ir7p都是 浪美眉

  • vwaCn
    2016-11-17 05:27:19发表

    打开 uvu.cc/ir7p都是 浪美眉

  • MVsLX
    2016-10-06 20:10:39发表

    精彩大片你懂,htTP://uVU.Cc/ijW6

  • gzpNS
    2016-09-13 04:46:02发表

    精彩大片你懂,htTP://uVU.Cc/ijW6

  • 王帅虎
    2016-03-25 15:50:18发表

    真好

IT技术学习网 - 关于我们 - 联系我们 - 版权声明 - 网站地图