PHP PDO fetch 模式各种参数的输出结果一览

yipeiwu_com7年前PHP代码库

PDO 的 fetch 模式功能实在是太方便了,但每次要产生想要的结果都要试太麻烦了,这里列出可能的组合。

复制代码 代码如下:

<?php   
$dbAdapter = new PDO("mysql:host=localhost;dbname=test", "root", "1234");   
$dbAdapter->exec("SET NAMES 'utf8';");    
    
$data = $dbAdapter->query("  
   SELECT id, name, method FROM category  
")->fetchAll(PDO::FETCH_ASSOC);   
   
//var_dump($data);   
/*  
array(  
   array(  
       'id' => '1',  
       'name' => 'HBO',  
       'method' => 'service',  
   ),  
   array(  
       'id' => '2',  
       'name' => '本周新片',  
       'method' => 'movie',  
   ),  
   array(  
       'id' => '3',  
       'name' => '热映中',  
       'method' => 'movie',  
   ),  
)  
*/   
   
   
   
$data = $dbAdapter->query("  
   SELECT name, method FROM category  
")->fetchAll(PDO::FETCH_COLUMN);   
   
//var_dump($data);   
/*  
array(  
   'HBO',  
   '本周新片',  
   '热映中',  
)  
*/   
   
   
   
$data = $dbAdapter->query("  
   SELECT id, name, method FROM category  
")->fetchAll(PDO::FETCH_UNIQUE | PDO::FETCH_ASSOC);   
   
//var_dump($data);   
/*  
array(  
   '1' => array(  
       'name' => 'HBO',  
       'method' => 'service',  
   ),  
   '2' => array(  
       'name' => '本周新片',  
       'method' => 'movie',  
   ),  
   '3' => array(  
       'name' => '热映中',  
       'method' => 'movie',  
   ),  
)  
*/   
   
   
   
$data = $dbAdapter->query("  
   SELECT method, id, name FROM category  
")->fetchAll(PDO::FETCH_UNIQUE | PDO::FETCH_ASSOC);   
   
//var_dump($data);   
/*  
array(  
   'service' => array(  
       'id' => '1',  
       'name' => 'HBO',  
   ),  
   'movie' => array(  
       'id' => '3',  
       'name' => '热映中',  
   ),  
)  
*/   
   
   
   
$data = $dbAdapter->query("  
   SELECT id, name, method FROM category  
")->fetchAll(PDO::FETCH_UNIQUE | PDO::FETCH_COLUMN);   
   
//var_dump($data);   
/*  
array(  
   '1' => 'HBO',  
   '2' => '本周新片',  
   '3' => '热映中',  
)  
*/   
   
   
   
$data = $dbAdapter->query("  
   SELECT method, name, id FROM category  
")->fetchAll(PDO::FETCH_UNIQUE | PDO::FETCH_COLUMN);   
   
//var_dump($data);   
/*  
array(  
   'service' => 'HBO',  
   'movie' => '热映中',  
)  
*/   
   
   
   
   
$data = $dbAdapter->query("  
   SELECT method, id, name FROM category  
")->fetchAll( PDO::FETCH_ASSOC | PDO::FETCH_GROUP);   
   
//var_dump($data);   
/*  
array(  
   'service' => array(  
       array(  
           'id' => '1'  
           'name' => 'HBO'  
       ),  
   )  
   'movie' => array(  
       array(  
         'id' => '2'  
         'name' => '本周新片'  
       ),  
       array(  
         'id' => '3'  
         'name' => '热映中'  
       ),  
   )  
)  
*/   
   
   
   
   
$data = $dbAdapter->query("  
   SELECT method, name, id FROM category  
")->fetchAll(PDO::FETCH_GROUP | PDO::FETCH_COLUMN);   
   
//var_dump($data);   
/*  
array(  
   'service' => array(  
       'HBO'  
   ),  
   'movie' => array(  
       '本周新片'  
       '热映中'  
   ),  
)  
*/   
   
   
   
   
   
$data = $dbAdapter->query("  
   SELECT id, name, method FROM category  
")->fetchAll(PDO::FETCH_OBJ);   
   
//var_dump($data);   
/*  
array(  
   stdClass{  
       public $id = '1';  
       public $name = 'HBO';  
       public $method = 'service';  
   },  
   stdClass{  
       public $id = '2';  
       public $name = '本周新片';  
       public $method = 'movie';  
   },  
   stdClass{  
       public $id = '3';  
       public $name = '热映中';  
       public $method = 'movie';  
   },  
)  
*/   
   
   
   
   
   
   
   
class Category_1 {}   
   
$data = $dbAdapter->query("  
   SELECT id, name, method FROM category  
")->fetchAll(PDO::FETCH_CLASS | PDO::FETCH_PROPS_LATE, "Category_1");   
   
//var_dump($data);   
/*  
array(  
   Category_1{  
       public $id = '1';  
       public $name = 'HBO';  
       public $method = 'service';  
   },  
   Category_1{  
       public $id = '2';  
       public $name = '本周新片';  
       public $method = 'movie';  
   },  
   Category_1{  
       public $id = '3';  
       public $name = '热映中';  
       public $method = 'movie';  
   },  
),  
*/   
   
   
   
   
   
class Category_2 {   
   public $name;   
   public $method;   
   
   public function __construct() {}   
   public function __set($name, $value ){}   
}   
   
$data = $dbAdapter->query("  
   SELECT id, name, method FROM category  
")->fetchAll(PDO::FETCH_CLASS | PDO::FETCH_PROPS_LATE, "Category_2");   
   
//var_dump($data);   
/*  
array(  
   Category_2{  
       public $name = 'HBO';  
       public $method = 'service';  
   },  
   Category_2{  
       public $name = '本周新片';  
       public $method = 'movie';  
   },  
   Category_2{  
       public $name = '热映中';  
       public $method = 'movie';  
   },  
)  
*/  

相关文章

PHP基于phpqrcode生成带LOGO图像的二维码实例

本文实例讲述了PHP基于phpqrcode生成带LOGO图像的二维码。分享给大家供大家参考。具体如下: 这里PHP使用phpqrcode生成带LOGO图像的二维码,使用起来很方便,代码中...

ubuntu 编译安装php 5.3.3+memcache的方法

//编译安装php 5.3.3 由于php5.3.X已经自带了php-fpm所以不需要打补丁 # sudo ./configure --prefix=/usr/local/php-5.3...

PHP生成数组再传给js的方法

<script type="text/javascript"> var slist = '<?php echo urlencode(json_encod...

PHP面向对象程序设计重载(overloading)操作详解

本文实例讲述了PHP面向对象程序设计重载(overloading)操作。分享给大家供大家参考,具体如下: 重载 PHP中的”重载”与其它绝大多数面向对象语言不同,只是他们都是用的相同的名...

php防注入及开发安全详细解析

1、PHP注入的基本原理程序员的水平及经验也参差不齐,相当大一部分程序员在编写代码的时候,没有对 用户输入数据的合法性进行判断,使应用程序存在安全隐患。用户可以提交一段数据 库查询代码,...