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'; }, ) */