ホームページ >データベース >mysql チュートリアル >PDO から結果セットを取得する

PDO から結果セットを取得する

黄舟
黄舟オリジナル
2017-02-25 10:35:171439ブラウズ

fetch() メソッド

fetch() メソッドは、結果セットの次の行を取得するために使用されます。構文は次のとおりです。

mixed PDOStatement::fetch([int fetch_style][,int cursor_orientation[,int cursor_offset]]])

パラメーター fetch_style は、結果の戻り方法を制御します。 set

PDO::FETCH_ASSOC -- 連想配列形式
PDO::FETCH_NUM -- 数値インデックス配列形式
PDO::FETCH_BOTH -- 両方の配列形式が利用可能で、これがデフォルトです
PDO::FETCH_OBJ -- によると、オブジェクトの形式は前の mysql_fetch_object() に似ています

PDO::FETCH_BOUND -- 結果をブール値の形式で返し、取得したカラム値をbindParam() メソッドで指定された変数。

PDO::FETCH_LAZY -- 結果を 3 つの形式で返します: 連想配列、数値インデックス配列、オブジェクト

cursor_orientation: PDOStatement オブジェクトのスクロール カーソル。指定された行を取得するために使用できます。

cursor_offset: カーソルのオフセット

例:

PDO の準備済みステートメントの prepare() およびexecute() を通じて SQL クエリ ステートメントを実行し、while() ステートメントと fetch( ) メソッド 完了したデータのループ出力

$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;);
}

実行結果は次のとおりです:

fetchAll() メソッド

f etchAll() メソッドが使用されます。結果セット内のすべての行の場合、その戻り値は結果セット内のすべてのデータを含むバイナリ配列です。構文は次のとおりです:

array
 PDOStatement::fetchAll([int fetch_style[,int column_index]])

参数说明:

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;);
}


运行结果为:

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[&#39;username&#39;].&#39;<br>&#39;;
}

运行结果为:

107lab
admin
admin

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;);
}


运行结果为:

1
4
5


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


声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。