Hướng dẫn dùng pdo fetchall trong PHP

Sử dụng pdo trong php trong php bài bài viết hướng dẫn bạn cách dùng thư viên PDO của php để thao tác với dữ liệu trong database.

Hướng dẫn dùng pdo fetchall trong PHP


PDO (PHP Data Object) là một thư viện có sẵn trong php giúp tương tác với các hệ quản trị CSDL. Ngoài Mysql, PDO còn giúp bạn tương tác với các hệ quản trị CSDL khác như SQLite , Microsoft SQL Server, PostgreSQL…

1. Kết nối đến database mysql từ PHP

Cách 1: Dùng đơn giản

<?php $conn = new PDO('mysql:host=localhost;dbname=test', $user, $pass); ?>

Cách 2: có kiểm soát lỗi

<?php
try {
    $host = "localhost";   
    $dbname = "tênDB"; 
    $username = "usernameDB";    
    $password = "MậtKhẩu";        
    $conn = new PDO("mysql:host=$host; dbname=$dbname; charset=utf8", $username, $password);
} catch (PDOException $e) {
    die("Lỗi : " . $e->getMessage() ) ;  
}

2. Các hàm trong PDO

Tài liệu về thư viện PDO và các hàm trong PDO ở link này, các bạn cp1 thể xem ở đây: http://ftp.psu.ac.th/pub/php/html/ref.pdo.html

  1. PDO::query – Chạy câu lệnh sql (thường là select), trả về đối tượng chứa dữ liệu
  2. PDOStatement::fetch –  Lấy ra 1 dòng dữ liệu, kết quả là 1 array
  3. PDOStatement::fetchAll –  Lấy ra tất cả các dòng dữ liệu , kết quả là 1 array
  4. PDOStatement::fetchObject – Lấy ra 1 dòng dữ liệu row and returns it as an object.
  5. PDO::exec – Chạy câu lệnh sql, (thường là insert, update, delete) , trả về số dòng ảnh hưởng
  6. PDOStatement::rowCount – Trả về số dòng ảnh hưởng bởi câu lệnh sql vừa chạy. Dùng để đểm số dòng dữ liệu lấy được chẳng hạn
  7. PDO::prepare –  Tạo đối tượng statement để chuẩn bị thực thi sau đó bởi hàm execute
  8. PDOStatement::execute –  thực thi statement đã tạo trước
  9. PDO::lastInsertId –  trả về id của record mới vừa chèn  vào table
  10. PDO::commit –  cho tác dụng các thực thi trong transaction
  11. PDO::rollBack – Thu hồi lại transaction

3. Hàm query, fetchAll, fetch

Hàm query dùng để chạy câu lệnh sql (thường là select), hàm này trả về 1 đối tượng chứa dữ liệu từ mysql. Sau khi query xong, bạn dùng hàm fetch để lấy từng dòng ra hiển thị hoặc có thể dùng fetchAll để lấy mọi dòng.Hàm fetchAll : lấy tất cả mọi dòng dữ liệu từ đối tượng dữ liệu

a. Hàm fetchAll : lấy tất cả mọi dòng dữ liệu từ đối tượng dữ liệu

<?php
$conn=new PDO("mysql:host=localhost;dbname=thaylongweb_tintuc;charset=utf8","root","");
$data = $conn->query("select idTin, TieuDe, TomTat, Ngay from tin");
$d = $data->fetchAll();
?>
<body>
<h2>Danh sách tin </h2>
<?php foreach ($d as $row) {?>
<p><?php echo $row['TieuDe']?></p>    
<?php } ?>
</body>

b. Hàm fetch : trích 1 dòng từ đối tượng dữ liệu để hiển thị

<?php
$conn=new PDO("mysql:host=localhost;dbname=thaylongweb_tintuc;charset=utf8","root","");
$data = $conn->query("SELECT idLT, Ten, ThuTu FROM loaitin LIMIT 0,5");
?>
<body>
<?php while ($row= $data->fetch()) {?>
<p> <?php print_r($row); ?></p>
  



  


<?php } ?&amp;amp;gt;
&amp;lt;/code&amp;gt;&amp;lt;/pre&amp;gt;



&amp;lt;p&amp;gt;c. Dùng hàm fetch để lấy &amp;nbsp;dòng với kết quả gọn hơn.&amp;lt;/p&amp;gt;



&amp;lt;pre class="wp-block-code"&amp;gt;&amp;lt;code&amp;gt;&amp;amp;lt;?php
$conn=new PDO("mysql:host=localhost;dbname=thaylongweb_tintuc;charset=utf8","root","");
$data = $conn-&amp;amp;gt;query("SELECT idLT, Ten, ThuTu FROM loaitin LIMIT 0,5");
?&amp;amp;gt;
&amp;amp;lt;body&amp;amp;gt;
&amp;amp;lt;?php while ($row= $data-&amp;amp;gt;fetch(PDO::FETCH_ASSOC)) {?&amp;amp;gt;
&amp;amp;lt;p&amp;amp;gt; &amp;amp;lt;?php print_r($row); ?&amp;amp;gt;&amp;amp;lt;/p&amp;amp;gt;
&amp;amp;lt;?php } ?&amp;amp;gt;
&amp;lt;/code&amp;gt;&amp;lt;/pre&amp;gt;



&amp;lt;h2&amp;gt;4. Hàm exec&amp;lt;/h2&amp;gt;



&amp;lt;p&amp;gt;Hàm exec trong PDO dùng để chạy câu lệnh sql, (thường là insert, update, delete) , trả về số dòng ảnh hưởng.&amp;lt;/p&amp;gt;



&amp;lt;p&amp;gt;Ví dụ về cách chèn dữ liệu&amp;lt;/p&amp;gt;



&amp;lt;pre class="wp-block-code"&amp;gt;&amp;lt;code&amp;gt;&amp;amp;lt;?php
$conn=new PDO("mysql:host=localhost;dbname=thaylongweb_tintuc;charset=utf8","root","");
$sodong = $conn-&amp;amp;gt;exec("
INSERT INTO tin (TieuDe,Ngay,idLT) VALUES('Việt Nam Vô Địch','2021-10-15','9')
");
echo "Số dòng đã chèn: ", $sodong;
?&amp;amp;gt;
&amp;lt;/code&amp;gt;&amp;lt;/pre&amp;gt;



&amp;lt;p&amp;gt;Ví dụ Update dữ liệu&amp;lt;/p&amp;gt;



&amp;lt;pre class="wp-block-code"&amp;gt;&amp;lt;code&amp;gt;&amp;amp;lt;?php
$conn=new PDO("mysql:host=localhost;dbname=thaylongweb_tintuc;charset=utf8","root","");
$sodong = $conn-&amp;amp;gt;exec("UPDATE tin set AnHien= 0 WHERE idTin&amp;amp;gt;=750");
echo "Số dòng đã cập nhật: ", $sodong;
?&amp;amp;gt;
&amp;lt;/code&amp;gt;&amp;lt;/pre&amp;gt;



&amp;lt;p&amp;gt;Ví dụ thực hiện xóa dữ liệu&amp;lt;/p&amp;gt;



&amp;lt;pre class="wp-block-code"&amp;gt;&amp;lt;code&amp;gt;&amp;amp;lt;?php
$conn=new PDO("mysql:host=localhost;dbname=thaylongweb_tintuc;charset=utf8","root","");
$sodong = $conn-&amp;amp;gt;exec("DELETE FROM tin  WHERE idTin&amp;amp;gt;=790");
echo "Số dòng đã xóa: ", $sodong;
?

&amp;lt;/code&amp;gt;&amp;lt;/pre&amp;gt;



&amp;lt;h2&amp;gt;5. Dùng prepare statement với các hàm prepare và execute&amp;lt;/h2&amp;gt;



&amp;lt;p&amp;gt;Hàm prepare dùng để tạo đối tượng để chuẩn bị thực thi 1 câu lệnh sql sau đó. Còn hàm execute: thực thi statement đã tạo.&amp;lt;/p&amp;gt;



&amp;lt;p&amp;gt;a. Truyền tham số theo thứ tự&amp;lt;/p&amp;gt;



&amp;lt;p&amp;gt;Ví dụ 1:&amp;lt;/p&amp;gt;



&amp;lt;pre class="wp-block-code"&amp;gt;&amp;lt;code&amp;gt;&amp;amp;lt;?php
$conn=new PDO("mysql:host=localhost;dbname=thaylongweb_tintuc;charset=utf8","root","");
$st = $conn-&amp;amp;gt;prepare('SELECT idTin,TieuDe FROM tin WHERE idLT =? AND AnHien =? ');
$st-&amp;amp;gt;execute( [9, 0] );
$data = $st-&amp;amp;gt;fetchAll(PDO::FETCH_ASSOC);
echo "&amp;amp;lt;pre&amp;amp;gt;"; print_r($data);
?&amp;amp;gt;
&amp;lt;/code&amp;gt;&amp;lt;/pre&amp;gt;



&amp;lt;p&amp;gt;Ví dụ 2:&amp;lt;/p&amp;gt;



&amp;lt;pre class="wp-block-code"&amp;gt;&amp;lt;code&amp;gt;&amp;amp;lt;?php
$conn=new PDO("mysql:host=localhost;dbname=thaylongweb_tintuc;charset=utf8","root","");
$sql = 'SELECT idTin,TieuDe FROM tin WHERE idLT =? AND AnHien =? ';
$st = $conn-&amp;amp;gt;prepare($sql);
$st-&amp;amp;gt;execute( [9, 1] );
$data = $st-&amp;amp;gt;fetchAll(PDO::FETCH_ASSOC);
foreach ($data as $row)
echo "&amp;amp;lt;p&amp;amp;gt;", $row['TieuDe'], "&amp;amp;lt;/p&amp;amp;gt;"
?&amp;amp;gt;
&amp;lt;/code&amp;gt;&amp;lt;/pre&amp;gt;



&amp;lt;p&amp;gt;b. Truyền tham số theo tên&amp;lt;/p&amp;gt;



&amp;lt;p&amp;gt;Ví dụ 1: trích ra toàn bộ các dòng cùng 1 lúc, kết quả là 1 array&amp;lt;/p&amp;gt;



&amp;lt;pre class="wp-block-code"&amp;gt;&amp;lt;code&amp;gt;&amp;amp;lt;?php
$conn=new PDO("mysql:host=localhost;dbname=thaylongweb_tintuc;charset=utf8","root","");
$sql = 'SELECT idTin,TieuDe FROM tin WHERE idLT =:lt AND AnHien =:ah ';
$st = $conn-&amp;amp;gt;prepare($sql);
$st-&amp;amp;gt;execute( [':lt' =&amp;amp;gt; 4, ':ah' =&amp;amp;gt; 1] );
$data = $st-&amp;amp;gt;fetchAll(PDO::FETCH_ASSOC);
echo "&amp;amp;lt;pre&amp;amp;gt;"; print_r($data);
?&amp;amp;gt;
&amp;lt;/code&amp;gt;&amp;lt;/pre&amp;gt;



&amp;lt;p&amp;gt;Ví dụ 2: trích ra từng dòng, kết quả là 1 array&amp;lt;/p&amp;gt;



&amp;lt;pre class="wp-block-code"&amp;gt;&amp;lt;code&amp;gt;&amp;amp;lt;?php
$conn=new PDO("mysql:host=localhost;dbname=thaylongweb_tintuc;charset=utf8","root","");
$sql = 'SELECT idTin,TieuDe FROM tin WHERE idLT =? AND AnHien =? ';
$st = $conn-&amp;amp;gt;prepare($sql);
$st-&amp;amp;gt;execute( [9, 1] );
while ($row = $st-&amp;amp;gt;fetch(PDO::FETCH_ASSOC))
echo "&amp;amp;lt;p&amp;amp;gt;". $row['TieuDe'] . "&amp;amp;lt;/p&amp;amp;gt;";
?&amp;amp;gt;
&amp;lt;/code&amp;gt;&amp;lt;/pre&amp;gt;



&amp;lt;p&amp;gt;Ví dụ 3 : trích ra từng dòng , kết quả là 1 object&amp;lt;/p&amp;gt;



&amp;lt;pre class="wp-block-code"&amp;gt;&amp;lt;code&amp;gt;&amp;amp;lt;?php
$conn=new PDO("mysql:host=localhost;dbname=thaylongweb_tintuc;charset=utf8","root","");
$sql = 'SELECT idTin,TieuDe FROM tin WHERE idLT =? AND AnHien =? ';
$st = $conn-&amp;amp;gt;prepare($sql);
$st-&amp;amp;gt;execute( [9, 1] );
while ($tin = $st-&amp;amp;gt;fetch(PDO::FETCH_OBJ))
echo "&amp;amp;lt;p&amp;amp;gt;". $tin-&amp;amp;gt;TieuDe . "&amp;amp;lt;/p&amp;amp;gt;";
?&amp;amp;gt;
&amp;lt;/code&amp;gt;&amp;lt;/pre&amp;gt;



&amp;lt;p&amp;gt;Ví dụ 4 trích ra từng dòng, kết quả là 1 đối tượng theo 1 class đã định nghĩa trước&amp;lt;/p&amp;gt;



&amp;lt;pre class="wp-block-code"&amp;gt;&amp;lt;code&amp;gt;&amp;amp;lt;?php
class tin {
    public $idTin, $TieuDe;
    function TD(){
        $kq = substr($this-&amp;amp;gt;TieuDe,0, 50)." ...";
        return mb_convert_case($kq, MB_CASE_TITLE, 'utf8');
    }
}
$conn = new PDO("mysql:host=localhost;dbname=thaylongweb_tintuc;charset=utf8","root","");
$conn-&amp;amp;gt;setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
$st=$conn-&amp;amp;gt;prepare('SELECT idTin,TieuDe FROM tin WHERE idLT =? AND AnHien =?');
$st-&amp;amp;gt;execute( [9, 1] );
$st-&amp;amp;gt;setFetchMode(PDO::FETCH_CLASS, 'tin');
while ($t = $st-&amp;amp;gt;fetch()) echo "&amp;amp;lt;p&amp;amp;gt;". $t-&amp;amp;gt;TD() . "&amp;amp;lt;/p&amp;amp;gt;";
?&amp;amp;gt;
&amp;lt;/code&amp;gt;&amp;lt;/pre&amp;gt;



&amp;lt;h2&amp;gt;6. Dùng transaction , rollback, commit&amp;lt;/h2&amp;gt;



&amp;lt;p&amp;gt;Transaction là 1 chuỗi những thực thi câu lệnh sql. Dùng transaction với rollback và commit sẽ có thể phục hồi lại dữ liệu nếu có 1 câu lệnh thực thi sai.&amp;lt;/p&amp;gt;



&amp;lt;pre class="wp-block-code"&amp;gt;&amp;lt;code&amp;gt;&amp;amp;lt;?php
try {  
    $conn=new PDO("mysql:host=localhost;dbname=thaylongweb_tintuc;charset=utf8","root","");
  &amp;lt;strong&amp;gt;  $conn-&amp;amp;gt;beginTransaction();&amp;lt;/strong&amp;gt;
    $conn-&amp;amp;gt;setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
    $conn-&amp;amp;gt;exec("DELETE FROM tin WHERE idTin=787");
    $conn-&amp;amp;gt;exec("DELETE FROM ykienA WHERE idTin=787");     
   &amp;lt;strong&amp;gt; $conn-&amp;amp;gt;commit();&amp;lt;/strong&amp;gt;
    echo "&amp;amp;lt;p&amp;amp;gt;Đã thực hiện&amp;amp;lt;/p&amp;amp;gt;";
} catch (Exception $e) {
    $conn-&amp;amp;gt;rollBack();
    echo "Lỗi: " . $e-&amp;amp;gt;getMessage();
  }
?&amp;amp;gt;
&amp;lt;/code&amp;gt;&amp;lt;/pre&amp;gt;



&amp;lt;p&amp;gt;Sử dụng pdo trong php là kỹ năng quan trọng giúp bạn tương tác với database nhằm quản lý dữ liệu (xem, thêm, sửa , xóa) trong đó. &amp;lt;/p&amp;gt;



&amp;lt;figure class="wp-block-embed is-type-video is-provider-youtube wp-block-embed-youtube wp-embed-aspect-16-9 wp-has-aspect-ratio"&amp;gt;&amp;lt;div class="wp-block-embed__wrapper"&amp;gt;
&amp;lt;iframe loading="lazy" title="Sử dụng PDO trong PHP" width="696" height="392" src="https://www.youtube.com/embed/iqlp5nUtj1A?feature=oembed" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" allowfullscreen&amp;gt;&amp;lt;/iframe&amp;gt;
&amp;lt;/div&amp;gt;&amp;lt;/figure&amp;gt;

  

&amp;lt;script async&amp;gt;&lt;div class="td-g-rec td-g-rec-id-content_bottom td_uid_3_631a4e2480454_rand td_block_template_5"&gt;
&lt;script type="text/javascript"&gt;
var td_screen_width = window.innerWidth;

                    if ( td_screen_width &gt;= 1140 ) {
                        /* large monitors */
                        document.write('&lt;span class="td-adspot-title"&gt;Quảng cáo &lt;/span&gt;&lt;ins class="adsbygoogle" style="display:inline-block;width:468px;height:60px" data-ad-client="ca-pub-2588354744761166" data-ad-slot="6930559999"&gt;&lt;/ins&gt;');
                        (adsbygoogle = window.adsbygoogle || []).push({});
                    }
            
	                    if ( td_screen_width &gt;= 1019  &amp;&amp; td_screen_width &lt; 1140 ) {
	                        /* landscape tablets */
                        document.write('&lt;span class="td-adspot-title"&gt;Quảng cáo &lt;/span&gt;&lt;ins class="adsbygoogle" style="display:inline-block;width:468px;height:60px" data-ad-client="ca-pub-2588354744761166" data-ad-slot="6930559999"&gt;&lt;/ins&gt;');
	                        (adsbygoogle = window.adsbygoogle || []).push({});
	                    }
	                
                    if ( td_screen_width &gt;= 768  &amp;&amp; td_screen_width &lt; 1019 ) {
                        /* portrait tablets */
                        document.write('&lt;span class="td-adspot-title"&gt;Quảng cáo &lt;/span&gt;&lt;ins class="adsbygoogle" style="display:inline-block;width:468px;height:60px" data-ad-client="ca-pub-2588354744761166" data-ad-slot="6930559999"&gt;&lt;/ins&gt;');
                        (adsbygoogle = window.adsbygoogle || []).push({});
                    }
                
                    if ( td_screen_width &lt; 768 ) {
                        /* Phones */
                        document.write('&lt;span class="td-adspot-title"&gt;Quảng cáo &lt;/span&gt;&lt;ins class="adsbygoogle" style="display:inline-block;width:300px;height:250px" data-ad-client="ca-pub-2588354744761166" data-ad-slot="6930559999"&gt;&lt;/ins&gt;');
                        (adsbygoogle = window.adsbygoogle || []).push({});
                    }
                
</code></pre></div>

  

        </article></div>


        <footer>
                        
            <div class="td-post-source-tags">
                                            </div>

            <div class="td-post-sharing-bottom"><div class="td-post-sharing-classic"><iframe frameborder="0" src="https://www.facebook.com/plugins/like.php?href=https://longnv.name.vn/video-thay-long-web/hoc-php-qua-video/su-dung-pdo-trong-php&layout=button_count&show_faces=false&width=105&action=like&colorscheme=light&height=21" style="border:none;overflow:hidden;width:105px;height:21px;background-color:transparent"></iframe></div><div id="td_social_sharing_article_bottom" class="td-post-sharing td-ps-bg td-ps-notext td-post-sharing-style1"><div class="td-post-sharing-visible"><a target="_blank" class="td-social-sharing-button td-social-sharing-button-js td-social-network td-social-facebook" href="https://www.facebook.com/sharer.php?u=https%3A%2F%2Flongnv.name.vn%2Fvideo-thay-long-web%2Fhoc-php-qua-video%2Fsu-dung-pdo-trong-php">
                                        <div class="td-social-but-icon"><i class="td-icon-facebook"></i></div>
                                        <div class="td-social-but-text">Facebook</div>
                                    </a></div><div class="td-social-sharing-hidden"><ul class="td-pulldown-filter-list"></ul><a target="_blank" class="td-social-sharing-button td-social-handler td-social-expand-tabs" href="https://longnv.name.vn/video-thay-long-web/hoc-php-qua-video/su-dung-pdo-trong-php#" data-block-uid="td_social_sharing_article_bottom">
                                    <div class="td-social-but-icon"><i class="td-icon-plus td-social-expand-tabs-icon"></i></div>
                                </a></div></div></div>                        <div class="td-author-name vcard author" style="display:none"><span class="fn"><a target="_blank" href="https://longnv.name.vn/author/qt">qt</a></span></div>	        <span class="td-page-meta" itemprop="author" itemscope itemtype="https://schema.org/Person"><meta itemprop="name" content="qt"></span><meta itemprop="datePublished" content="2021-08-29T13:44:46+00:00"><meta itemprop="dateModified" content="2021-11-10T20:26:46+07:00"><meta itemscope itemprop="mainEntityOfPage" itemtype="https://schema.org/WebPage" itemid="https://longnv.name.vn/video-thay-long-web/hoc-php-qua-video/su-dung-pdo-trong-php"><span class="td-page-meta" itemprop="publisher" itemscope itemtype="https://schema.org/Organization"><span class="td-page-meta" itemprop="logo" itemscope itemtype="https://schema.org/ImageObject"><meta itemprop="url" content="https://longnv.name.vn/wp-content/uploads/2019/09/logo4-150x150.png"></span><meta itemprop="name" content="Thầy Long Web"></span><meta itemprop="headline " content="Sử dụng pdo trong php"><span class="td-page-meta" itemprop="image" itemscope itemtype="https://schema.org/ImageObject"><meta itemprop="url" content="https://longnv.name.vn/wp-content/uploads/2021/08/su-dung-pdo-trong-php.png"><meta itemprop="width" content="870"><meta itemprop="height" content="451"></span>        </footer>

     

    <div class="td_block_wrap td_block_related_posts td_uid_4_631a4e2484cd4_rand td_with_ajax_pagination td-pb-border-top td_block_template_5" data-td-block-uid="td_uid_4_631a4e2484cd4"><script>var block_td_uid_4_631a4e2484cd4 = new tdBlock();
block_td_uid_4_631a4e2484cd4.id = "td_uid_4_631a4e2484cd4";
block_td_uid_4_631a4e2484cd4.atts = '{"limit":3,"ajax_pagination":"next_prev","live_filter":"cur_post_same_categories","td_ajax_filter_type":"td_custom_related","class":"td_uid_4_631a4e2484cd4_rand","td_column_number":3,"live_filter_cur_post_id":4575,"live_filter_cur_post_author":"1","block_template_id":"","header_color":"","ajax_pagination_infinite_stop":"","offset":"","td_ajax_preloading":"","td_filter_default_txt":"","td_ajax_filter_ids":"","el_class":"","color_preset":"","border_top":"","css":"","tdc_css":"","tdc_css_class":"td_uid_4_631a4e2484cd4_rand","tdc_css_class_style":"td_uid_4_631a4e2484cd4_rand_style"}';
block_td_uid_4_631a4e2484cd4.td_column_number = "3";
block_td_uid_4_631a4e2484cd4.block_type = "td_block_related_posts";
block_td_uid_4_631a4e2484cd4.post_count = "3";
block_td_uid_4_631a4e2484cd4.found_posts = "5";
block_td_uid_4_631a4e2484cd4.header_color = "";
block_td_uid_4_631a4e2484cd4.ajax_pagination_infinite_stop = "";
block_td_uid_4_631a4e2484cd4.max_num_pages = "2";
tdBlocksArray.push(block_td_uid_4_631a4e2484cd4);

BÀI VIẾT LIÊN QUANXEM THÊM

Hướng dẫn dùng pdo fetchall trong PHP

Phân trang trong PHP

Hướng dẫn dùng pdo fetchall trong PHP

Sử dụng tham số trong url

Hướng dẫn dùng pdo fetchall trong PHP

Gửi mail trong php qua gmail và mailtrap