Heim  >  Artikel  >  Datenbank  >  Ergebnissatz vom PDO abrufen

Ergebnissatz vom PDO abrufen

黄舟
黄舟Original
2017-02-25 10:35:171382Durchsuche

fetch()-Methode

fetch()-Methode wird verwendet, um die nächste Zeile der Ergebnismenge abzurufen. Die Syntax lautet wie folgt:

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

Der Parameter fetch_style steuert die Rückgabemethode der Ergebnismenge

PDO::FETCH_ASSOC -- Assoziative Array-Form
PDO::FETCH_NUM – ​​Numerischer Index-Array-Form
PDO::FETCH_BOTH – Beide Array-Formen sind verfügbar, dies ist die Standardeinstellung
PDO ::FETCH_OBJ – in Form eines Objekts, ähnlich dem vorherigen mysql_fetch_object()

PDO::FETCH_BOUND – gibt das Ergebnis zurück in Form eines booleschen Werts und der gleichzeitig erhaltenen Spalten. Der Wert wird der angegebenen Variablen in der Methode bindParam () zugewiesen.

PDO::FETCH_LAZY – gibt Ergebnisse in drei Formen zurück: assoziatives Array, numerisches Indexarray und Objekt

cursor_orientation: PDOStatement Ein Bildlaufcursor für das Objekt, der zum Abrufen einer angegebenen Zeile verwendet werden kann.

cursor_offset: Der Offset des Cursors

Zum Beispiel:

Bereiten Sie sich durch die vorbereitete Anweisung in PDO vor () undexecute() führen SQL-Abfrageanweisungen aus und verwenden die while()-Anweisung und die fetch()-Methode, um die Schleifenausgabe von Daten abzuschließen

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

Laufergebnisse für:

1
 107lab e10adc3949ba59abbe56e057f20f883e
4 admin 123456
5 admin 123456

fetchAll()-Methode

Die fetchAll()-Methode wird verwendet, um alle Zeilen im Ergebnissatz abzurufen, und ihr Rückgabewert ist ein binäres Array, das alle Daten im Ergebnissatz enthält. Die Syntax lautet wie folgt:

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)!


Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn