PHP PDO fetch 模式各种参数的输出结果一览
PDO的fetch模式功能实在是太方便了,但每次要产生想要的结果都要试太麻烦了,这里列出可能的组合。
<?php
$dbAdapter=newPDO("mysql:host=localhost;dbname=test","root","1234");
$dbAdapter->exec("SETNAMES'utf8';");
$data=$dbAdapter->query("
SELECTid,name,methodFROMcategory
")->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("
SELECTname,methodFROMcategory
")->fetchAll(PDO::FETCH_COLUMN);
//var_dump($data);
/*
array(
'HBO',
'本周新片',
'热映中',
)
*/
$data=$dbAdapter->query("
SELECTid,name,methodFROMcategory
")->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("
SELECTmethod,id,nameFROMcategory
")->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("
SELECTid,name,methodFROMcategory
")->fetchAll(PDO::FETCH_UNIQUE|PDO::FETCH_COLUMN);
//var_dump($data);
/*
array(
'1'=>'HBO',
'2'=>'本周新片',
'3'=>'热映中',
)
*/
$data=$dbAdapter->query("
SELECTmethod,name,idFROMcategory
")->fetchAll(PDO::FETCH_UNIQUE|PDO::FETCH_COLUMN);
//var_dump($data);
/*
array(
'service'=>'HBO',
'movie'=>'热映中',
)
*/
$data=$dbAdapter->query("
SELECTmethod,id,nameFROMcategory
")->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("
SELECTmethod,name,idFROMcategory
")->fetchAll(PDO::FETCH_GROUP|PDO::FETCH_COLUMN);
//var_dump($data);
/*
array(
'service'=>array(
'HBO'
),
'movie'=>array(
'本周新片'
'热映中'
),
)
*/
$data=$dbAdapter->query("
SELECTid,name,methodFROMcategory
")->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';
},
)
*/
classCategory_1{}
$data=$dbAdapter->query("
SELECTid,name,methodFROMcategory
")->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';
},
),
*/
classCategory_2{
public$name;
public$method;
publicfunction__construct(){}
publicfunction__set($name,$value){}
}
$data=$dbAdapter->query("
SELECTid,name,methodFROMcategory
")->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';
},
)
*/