Maison >base de données >tutoriel mysql >Obtenir le jeu de résultats de PDO
Méthode fetch()
La méthode fetch() est utilisée pour obtenir la ligne suivante de l'ensemble de résultats. La syntaxe est la suivante :
mixed PDOStatement::fetch([int fetch_style][,int cursor_orientation[,int cursor_offset]]])
Le paramètre fetch_style contrôle la méthode de retour de l'ensemble de résultats
PDO::FETCH_ASSOC -- Forme de tableau associatif
PDO::FETCH_NUM -- Forme de tableau d'index numérique
PDO::FETCH_BOTH -- Les deux formes de tableau sont disponibles, c'est la valeur par défaut
PDO ::FETCH_OBJ -- sous la forme d'un objet, similaire au précédent mysql_fetch_object()
PDO::FETCH_BOUND --renvoie le résultat sous la forme d'une valeur booléenne, et les colonnes obtenues en même temps La valeur est affectée à la variable spécifiée dans la méthode bindParam().
PDO::FETCH_LAZY--renvoie les résultats sous 3 formes : tableau associatif, tableau d'index numérique et objet
cursor_orientation : PDOStatement Un curseur de défilement pour l'objet qui peut être utilisé pour récupérer une ligne spécifiée.
cursor_offset : Le décalage du curseur
Par exemple :
Préparez via l'instruction préparée dans PDO () et execute() exécutent des instructions de requête SQL et utilisent l'instruction while() et la méthode fetch() pour terminer la sortie en boucle des données
$dbms='mysql';//数据库类型 $dbName='admin';//使用的数据库 $user='root';//数据库连接用户名 $pwd='password';//数据库连接密码 $host='localhost';//数据库主机名 $dsn="$dbms:host=$host;port=3306;dbname=$dbName"; try{ $pdo=new PDO($dsn,$user,$pwd);//初始化一个PDO对象,就是创建了数据库连接对象$pdo $query="select * from user";//需要执行的sql语句 $res=$pdo->prepare($query);//准备查询语句 $res->execute(); while($result=$res->fetch(PDO::FETCH_ASSOC)){ echo $result['id']." ".$result['username']." ".$result['password'].'<br>'; } }catch(Exception $e){ die("Error!:".$e->getMessage().'<br>'); }
résultats en cours d'exécution pour :
1 107lab e10adc3949ba59abbe56e057f20f883e 4 admin 123456 5 admin 123456
méthode fetchAll()
La méthode fetchAll() est utilisée pour obtenir toutes les lignes de l'ensemble de résultats, et sa valeur de retour est un tableau binaire contenant toutes les données de l'ensemble de résultats. La syntaxe est la suivante :
array PDOStatement::fetchAll([int fetch_style[,int column_index]])
参数说明:
fetch_style:控制结果集中数据的显示方式。
column_index: 字段的索引。
例如:
$dbms='mysql';//数据库类型 $dbName='admin';//使用的数据库 $user='root';//数据库连接用户名 $pwd='password';//数据库连接密码 $host='localhost';//数据库主机名 $dsn="$dbms:host=$host;port=3306;dbname=$dbName"; try{ $pdo=new PDO($dsn,$user,$pwd);//初始化一个PDO对象,就是创建了数据库连接对象$pdo $query="select * from user";//需要执行的sql语句 $res=$pdo->prepare($query);//准备查询语句 $res->execute(); $result=$res->fetchAll(PDO::FETCH_ASSOC); print_r($result); }catch(Exception $e){ die("Error!:".$e->getMessage().'<br>'); }
运行结果为:
Array ( [0] => Array ( [id] => 1 [username] => 107lab [password] => e10adc3949ba59abbe56e057f20f883e ) [1] => Array ( [id] => 4 [username] => admin [password] => 123456 ) [2] => Array ( [id] => 5 [username] => admin [password] => 123456 ) )
此时可以通过foreach来遍历这个二维数组
foreach($result as $val){ echo $val['username'].'<br>'; }
运行结果为:
107lab admin admin
fetchColumn()方法
fetchColumn()方法获取结果集中下一行指定列的值,语法如下:
string PDOStatement::fetchColumn([int column_number])
可选参数column_number设置行中列的索引值,该值从0开始。如果省略该参数则将从第1列开始取值
例如:
通过fetchColumn()方法获取结果集中下一行中指定列的值。(或第一列id的值)
$dbms='mysql';//数据库类型 $dbName='admin';//使用的数据库 $user='root';//数据库连接用户名 $pwd='password';//数据库连接密码 $host='localhost';//数据库主机名 $dsn="$dbms:host=$host;port=3306;dbname=$dbName"; try{ $pdo=new PDO($dsn,$user,$pwd);//初始化一个PDO对象,就是创建了数据库连接对象$pdo $query="select * from user";//需要执行的sql语句 $res=$pdo->prepare($query);//准备查询语句 $res->execute(); echo $res->fetchColumn(0).'<br>'; echo $res->fetchColumn(0).'<br>'; echo $res->fetchColumn(0).'<br>'; }catch(Exception $e){ die("Error!:".$e->getMessage().'<br>'); }
运行结果为:
1 4 5
以上就是PDO中获取结果集的内容,更多相关内容请关注PHP中文网(www.php.cn)!