PHP中PDO怎么使用

蝸牛 互聯網技術資訊 2021-12-20 231 0

這篇文章主要介紹了PHP中PDO怎么使用,具有一定借鑒價值,感興趣的朋友可以參考下,希望大家閱讀完這篇文章之后大有收獲,下面讓小編帶著大家一起了解一下。

一、基本知識

1、什么是PDO?

PDO就是PHP data Object 提供了PHP操作多種數據庫的統一的接口

2、為什么要使用PDO?

PDO是PHP5新加入的一個重大功能,我們的數據庫服務器為MySQL,所有的程序代碼的數據庫操作全是一mysql()或者mysqli()函數來操作,當我們的數據庫 需要更換時比如換成,SQL、SERVER、PostgreSQL、MS 等,我們不可能去修改所有的程序代碼!所以就要用到PDO,PDO很好的幫我們解決了這個問題,使用PDO操作非常方便,只需要修改數據源格式,和加載相應的驅動文件到PHP.ini即可;

3、PDO都有哪些特點?
1)編碼的一致性

由于PHP可用的各種數據庫擴展是由不同發行者編寫的,所以盡管所有的擴展都提供了基本相同的特性,卻不 滿 足編碼的一致性。PDO消除了這種不一致,提供了可用于各種數據庫的單一接口;

2)靈活性

因為PDO在運行時加載必須的數據庫驅動程序,所以不需要在每次使用不同數據庫時重新配置和重新編譯PHP。例如,如果數據庫需要從SQL切換到MySQL,只需要加載PDO_MYSQL驅動程序就可以了。

3)面向對象特性

PDO利用PHP5的面向對象特性,可以獲得更強大、更高效的數據庫通信。

4)高性能

PDO是用C編寫的,編譯為PHP,與用PHP編寫的其他解決方案相比,雖然其他都相同,但提供了更高的性能。

二、PDO基本使用

1、PDO的配置

1)修改php.ini,添加MySQL的PDO擴展

打開PHP配置文件php.ini,找到php_pdo_mysql.dll這行去掉錢買你的分號

2)擴展目錄中要有相應的擴展文件

打開PHP配置文件php.ini,找到extension_dir,這個就是我們擴展存在的目錄,首先去掉前面的分號,然后修改擴展目錄,我的擴展目錄是在"E:/Web/php/ext",就改成extension_dir="E:/Web/php/ext"。

3)PDO連接不同的數據,要有不同的數據庫驅動文件,即我們所加入配置文件的擴展
4)重新啟動服務器,IIS/Apache,我的是apache,使配置生效

2、數據源配置的格式

1)數據源格式

(1)連接數據庫、數據庫的用戶名、數據庫的密碼

語法:$dsn =“數據庫類型:dbname=數據庫名;host=數據庫的域名”;

$user = "數據庫的用戶名";

$password = "數據庫的密碼";

例:$dsn = "mysql:dbname=test;host=127.0.0.1";

$user = "root";

$password="123456";

(2)聲明對象

$object = new PDO($dsn,$user,$password);

3、方法講解

1)添加

主要思路:

(1)連接數據庫、數據庫的用戶名、數據庫的密碼

(2)生成PDO對象

(3)執行添加

實現代碼如下:

<?php
header('content-type:text/html;charset=utf8');
//連接數據庫
$dsn="mysql:dbname=test;host=127.0.0.1";
//數據庫的用戶名
$user="root";
//數據庫的密碼
$password="123456";
//生成PDO對象
$object?=?new?PDO($dsn,$user,$password);
//執行添加
$sql="insert?into?student(`name`,`sex`,`sex`)?values('zhangsan','男','18')";
if($object->exec($sql)){
????echo?'添加成功';
}

注釋:exec主要用于執行沒有返回結果集的操作,比如insert、delete、update,返回的是影響的記錄條數

2)查詢

(1)查詢方式一: ?

主要思路:

(1)連接數據庫、數據庫的用戶名、數據庫的密碼 ?

(2)生成PDO對象 ?

(3)執行查詢

實現代碼:

<?php
header('content-type:text/html;charset=utf8');
//連接數據庫
$dsn="mysql:dbname=test;host=127.0.0.1";
//數據庫的用戶名
$user="root";
//數據庫的密碼
$password="123456";
//生成PDO對象
$object?=?new?PDO($dsn,$user,$password);

$sql="select?*?from?student";
$result?=?$object->query($sql);
while($arr=$result->fetch()){
????print_r($arr);
}

查詢結果為:

PHP中PDO怎么使用  php 第1張

$result的打印結果為:

PHP中PDO怎么使用  php 第2張

還可以用:

$data=$result->fetchAll();
print_r($student_info);

輸出結果為二維數組:

PHP中PDO怎么使用  php 第3張
? ? 注釋:

? ? ? ? ? ? ? ?1、query()執行查詢語句,返回結果集對象;

2、用循環利用fetch()方法逐個的取出記錄,返回的是關聯數組和索引數組兩種數組,和mysql_fetch_array()的返回結果一致

? ? ? ? ? ? ? ?3、fetchAll()方法可以一次取出結果集中所有的數組,以二維數組的形式返回,但仍然是關聯數組和索引數組兩種數組

? ? ? ?數字索引和關聯索引都有,屬于浪費資源,我們只需要關聯索引:還可用用一下方式查詢:

$object->setAttribute(PDO::ATTR_CASE,?PDO::CASE_UPPER);
$result?=?$object->query($sql);
$result->setFetchMode(PDO::FETCH_ASSOC);
$result_array?=?$result->fetchAll();
print_r($result_array);

結果為:

PHP中PDO怎么使用  php 第4張

注釋:

? ? ? ?setAttribute()方法是設置部分屬性,主要屬性有:PDO::ATTR_CASE、PDO::ATTR_ERRMODE等,我們設置的是PDO::ATTR_CASE(使用關聯索引獲取數據)

PDO::CASE_UPPER是設置關聯索引為大寫,

PDO::CASE_LOWER ?-- ?強制列名為小寫

PDO::CASE_NATURAL -- 列名按照原始方式

PDO::CASE_UPPER -- 強制列名為大寫

? ?setFetchMode()方法設置獲取結果集的返回值類型,同樣類型還有:

PDO::FETCH_ASSOC --關聯數組形式

PDO::FETCH_NUM -- 數字索引形式數組

PDO::FETCH_BOTH --兩者數組形式都有

PDO::FETCH_OBJ -- 按照對象的形式,類似于以前的mysql_fetch_object() ? ? ?

感謝你能夠認真閱讀完這篇文章,希望小編分享的“PHP中PDO怎么使用”這篇文章對大家有幫助,同時也希望大家多多支持蝸牛博客,關注蝸牛博客行業資訊頻道,更多相關知識等著你來學習!

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:niceseo99@gmail.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

評論

日本韩欧美一级A片在线观看