fetch() method
The fetch() method is used to get the next row of the result set. The syntax is as follows:
mixed PDOStatement::fetch([int fetch_style][,int cursor_orientation[,int cursor_offset]]])
The parameter fetch_style controls the return method of the result set
##PDO::FETCH_ASSOC -- Associative array form
PDO::FETCH_NUM -- Numeric index array form
PDO::FETCH_BOTH -- Both array forms are available, this is the default
PDO:: FETCH_OBJ -- in the form of an object, similar to the previous mysql_fetch_object()
PDO::FETCH_BOUND --returns the result in the form of a Boolean value, and assigns the obtained column value Give the specified variable in the bindParam() method.
PDO::FETCH_LAZY--returns results in 3 forms: associative array, numeric index array and object
cursor_orientation: PDOStatement A scrolling cursor for the object that can be used to retrieve a specified row.
Use the prepared statement prepare in PDO () and execute() execute SQL query statements, and use the while() statement and fetch() method to complete the loop output of data
$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>'); }
The running result is:
1 107lab e10adc3949ba59abbe56e057f20f883e 4 admin 123456 5 admin 123456
fetchAll() method
The fetchAll() method is used to obtain all rows in the result set, and its return value is a binary array containing all the data in the result set. The syntax is as follows:
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)!