Rumah > Artikel > pembangunan bahagian belakang > Bagaimana untuk menggunakan PDO untuk mendapatkan hasil pertanyaan dalam pembelajaran pangkalan data PHP?
Dalam artikel sebelumnya, saya membawakan anda " Bagaimana untuk menggunakan PDO untuk melaksanakan pernyataan SQL dalam pembelajaran pangkalan data PHP? 》, yang memperkenalkan secara terperinci pengetahuan tentang cara menggunakan PDO untuk melaksanakan pernyataan SQL Dalam artikel ini, kami akan terus melihat bagaimana PHP menggunakan PDO untuk mendapatkan hasil pertanyaan. Semoga ia membantu semua orang!
Dalam artikel sebelum ini kita telah mempelajari cara menggunakan PDO untuk melaksanakan pernyataan SQL, kemudian mari kita lihat kaedah pemerolehan data PDO, kaedah pemerolehan data PDO Ia sangat serupa dengan sambungan pangkalan data lain.
Selagi pertanyaan SELECT berjaya dilaksanakan, objek set hasil akan dijana, sama ada menggunakan kaedah qurey()
dalam objek PDO atau menggunakan pernyataan yang disediakan yang menggabungkan prepare()
dan execute()
kaedah , melaksanakan pertanyaan SELECT akan mendapat hasil set objek PDOStatement.
Anda boleh mendapatkan hasil pertanyaan pernyataan SELECT melalui kaedah dalam kelas PDOStatement Seterusnya, mari kita lihat beberapa kaedah biasa untuk mendapatkan data set hasil dalam kelas PDOStatement. Kaedah
<strong><span style="font-size: 20px;">fetch()</span></strong>
kaedah
fetch()
boleh mendapatkan kandungan baris semasa daripada set hasil objek PDOStatement dan menukar set hasil Penunjuk bergerak ke baris seterusnya dan mengembalikan FALSE apabila ia mencapai penghujung set hasil Format sintaks kaedah ini adalah seperti berikut:
PDOStatement::fetch([int $fetch_style[, int $cursor_orientation = PDO::FETCH_ORI_NEXT[, int $cursor_offset = 0]]])
🎜>
mewakili parameter pilihan , digunakan untuk mengawal cara baris seterusnya dikembalikan kepada pemanggil. Nilai parameter ini mestilah salah satu daripada pemalar siri $fetch_style
, seperti ditunjukkan di bawah: PDO::FETCH_*
bermaksud mengembalikan tatasusunan bersekutu; PDO::FETCH_ASSOC
PDO::FETCH_BOTH
PDO::FETCH_BOUND
PDO::FETCH_OBJ
PDO::FETCH_CLASS
Jika
fetch_style
PDO::FETCH_CLASSTYPE
mewakili parameter pilihan Apabila parameter $cursor_orientation ditetapkan kepada
, Nilai ini menentukan kedudukan baris yang anda ingin ambil berbanding dengan kursor sebelum memanggil PDOStatement::fetch(). $cursor orientation
$offset
PDO::FETCH_ORI_ABS
Hasil keluaran: PDO::FETCH_ORI_REL
<?php $dsn = 'mysql:host=127.0.0.1;dbname=test'; $user = 'root'; $pwd = 'root'; try{ $pdo = new PDO($dsn,$user,$pwd); $sql = 'SELECT name,age,sex FROM user WHERE age = \'12\''; $res = $pdo -> query($sql); echo '<pre class="brush:php;toolbar:false">'; while ($row = $res -> fetch(PDO::FETCH_ASSOC)){ print_r($row); } }catch(PDOException $e){ echo '数据库连接失败:'.$e -> getMessage(); } ?>
Daripada ini kami melengkapkan hasil daripada objek PDOStatement melalui fetch( ) kaedah Fokus pada mendapatkan kandungan baris semasa.
mewakili parameter pilihan Apabila parameter
, nilai ini menentukan nombor baris mutlak baris dalam set hasil yang anda ingin dapatkan apabila parameter ditetapkan
, nilai ini menentukan nombor baris mutlak baris yang anda ingin perolehi dalam set hasil untuk mendapatkan kedudukan baris berbanding kursor sebelum memanggil. $offset
$cursor_orientation
Seterusnya mari kita lihat pada aplikasi kaedah fetchAll(). PDO::FETCH_ORI_ABS
$cursor_orientation
PDO::FETCH_ORI_REL
PDOStatement::fetch()
fetchAll()
Kaedah <strong><span style="font-size: 20px;">fetchAll()</span></strong>
Kaedah ini serupa dengan kaedah fetch() yang diperkenalkan di atas, tetapi kaedah ini hanya perlu dipanggil sekali untuk mendapatkan semua baris dalam set hasil dan menetapkannya kepada tatasusunan yang dikembalikan. Format sintaks kaedah ini adalah seperti berikut:
fetchAll()
Perlu diambil perhatian bahawa:
PDOStatement::fetchAll([int $fetch_style[, mixed $fetch_argument[, array $ctor_args = array()]]])
mewakili parameter pilihan, yang digunakan untuk mengawal kandungan Tatasusunan yang dikembalikan. Nilai lalai ialah PDO::FETCH_BOTH. Nilai parameter ini adalah sama dengan kaedah fetch()
$fetch_style
Parameter ini mempunyai makna yang berbeza mengikut nilai parameter $fetch_style:
$fetch_argument
PDO::FETCH_CLASS
:返回指定类的实例,映射每行的列到类中对应的属性名;
PDO::FETCH_FUNC
:将每行的列作为参数传递给指定的函数,并返回调用函数后的结果。
$ctor_args
表示当 $fetch_style 参数为 PDO::FETCH_CLASS
时,自定义类的构造函数的参数。
接下来我们通过示例来看一下fetchAll() 方法的实际应用,示例如下:
<?php $dsn = 'mysql:host=127.0.0.1;dbname=test'; $user = 'root'; $pwd = 'root'; try{ $pdo = new PDO($dsn,$user,$pwd); $sql = 'SELECT name,age,sex FROM user WHERE sex = \'男\''; $res = $pdo -> query($sql); $data = $res -> fetchAll(PDO::FETCH_ASSOC); echo '<pre class="brush:php;toolbar:false">'; print_r($data); }catch(PDOException $e){ echo '数据库连接失败:'.$e -> getMessage(); } ?>
输出结果:
由此我们便通过使用 fetchAll() 方法,获取 SELECT 语句的查询结果。$ctor_args
表示当 $fetch_style
参数为 PDO::FETCH_CLASS
时,自定义类的构造函数的参数。
接下来我们看一下fetchColumn() 方法的使用。
<strong><span style="font-size: 20px;">fetchColumn() </span></strong>
方法
fetchColumn()
方法可以获取结果集中当前行指定字段的值,其语法格式如下:
PDOStatement::fetchColumn([int $column_number = 0])
其中需要注意的是:
参数 $column_number
表示的是想从行里取回的列的索引数字。
如果该参数没有取值,也就是如果没有提供值,那么则会从第一列开始获取。
接下来我们通过示例来看一下fetchColumn() 方法的使用,示例如下:
<?php $dsn = 'mysql:host=127.0.0.1;dbname=test'; $user = 'root'; $pwd = 'root'; try{ $pdo = new PDO($dsn,$user,$pwd); $sql = 'SELECT name,age,sex FROM user'; $res = $pdo -> query($sql); echo '当前行第一列的值为:'.$res -> fetchColumn().'<br>'; echo '当前行第三列的值为:'.$res -> fetchColumn(2).'<br>'; echo '当前行第二列的值为:'.$res -> fetchColumn(1).'<br>'; }catch(PDOException $e){ echo '数据库连接失败:'.$e -> getMessage(); } ?>
输出结果:
由此我们便通过使用 fetchColumn() 方法,获取指定字段的值。
大家如果感兴趣的话,可以点击《PHP视频教程》进行更多关于PHP知识的学习。
Atas ialah kandungan terperinci Bagaimana untuk menggunakan PDO untuk mendapatkan hasil pertanyaan dalam pembelajaran pangkalan data PHP?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!