Home > Database > Mysql Tutorial > Get result set from PDO

Get result set from PDO

黄舟
Release: 2017-02-25 10:35:17
Original
1458 people have browsed it

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]]])
Copy after login

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.

cursor_offset: The offset of the cursor

For example:

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[&#39;id&#39;]." ".$result[&#39;username&#39;]." ".$result[&#39;password&#39;].&#39;<br>&#39;;
    }
}catch(Exception $e){
die("Error!:".$e->getMessage().&#39;<br>&#39;);
}
Copy after login

The running result is:

1
 107lab e10adc3949ba59abbe56e057f20f883e
4 admin 123456
5 admin 123456
Copy after login

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]])
Copy after login

参数说明:

fetch_style:控制结果集中数据的显示方式。

column_index: 字段的索引。

例如:

$dbms=&#39;mysql&#39;;//数据库类型
$dbName=&#39;admin&#39;;//使用的数据库
$user=&#39;root&#39;;//数据库连接用户名
$pwd=&#39;password&#39;;//数据库连接密码
$host=&#39;localhost&#39;;//数据库主机名
$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().&#39;<br>&#39;);
}
Copy after login


运行结果为:

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
        )

)
Copy after login

此时可以通过foreach来遍历这个二维数组


foreach($result as $val){
echo $val[&#39;username&#39;].&#39;<br>&#39;;
}
Copy after login

运行结果为:

107lab
admin
admin
Copy after login

fetchColumn()方法

fetchColumn()方法获取结果集中下一行指定列的值,语法如下:

string PDOStatement::fetchColumn([int column_number])

可选参数column_number设置行中列的索引值,该值从0开始。如果省略该参数则将从第1列开始取值

例如:

通过fetchColumn()方法获取结果集中下一行中指定列的值。(或第一列id的值)

$dbms=&#39;mysql&#39;;//数据库类型
$dbName=&#39;admin&#39;;//使用的数据库
$user=&#39;root&#39;;//数据库连接用户名
$pwd=&#39;password&#39;;//数据库连接密码
$host=&#39;localhost&#39;;//数据库主机名
$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).&#39;<br>&#39;;
    echo $res->fetchColumn(0).&#39;<br>&#39;;
    echo $res->fetchColumn(0).&#39;<br>&#39;;
}catch(Exception $e){
    die("Error!:".$e->getMessage().&#39;<br>&#39;);
}
Copy after login


运行结果为:

1
4
5
Copy after login


 以上就是PDO中获取结果集的内容,更多相关内容请关注PHP中文网(www.php.cn)!


Related labels:
source:php.cn
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template