PDO方式連接數據庫、PHP連接數據庫

一、什麼是PDO?

PDO是PHP Date Object(PHP數據對象)的簡稱,它是與PHP 5.1版本一起發行的。
目前支持的數據庫包括Firebird、FreeTDS、Interbase、MySQL、MS SQL Server、ODBC、Oracle、Postgre SQL、SQLite和Sybase。
有了PDO,您不必再使用mysql_*函數、oci_*函數或者mssql_*函數,也不必再爲它們封裝數據庫操作類,只需要使用PDO接口中的方法就可以對數據庫進行操作。在選擇不同的數據庫時,只需修改PDO的DSN(數據源名稱)。
在PHP 6中將默認使用PDO連接數據庫,所有非PDO擴展將會在PHP 6中被移除。該擴展提供PHP內置類PDO來對數據庫進行訪問,不同數據庫使用相同的方法名,以解決數據庫連接不統一的問題。

二、PDO的作用與特點

2.1 統一各種數據庫的訪問接口

PDO是一個“數據庫訪問抽象層”,作用是統一各種數據庫的訪問接口,與mysql和mssql函數庫相比,PDO讓跨數據庫的使用更具有親和力;與ADODB和MDB2相比,PDO更高效。
在這裏插入圖片描述

三、PDO的啓用

PDO是與PHP 5.1一起發行的,默認包含在PHP 5.1中。
由於PDO需要PHP 5.0核心面向對象特性的支持,因此其無法在PHP 5.0之前的版本中使用
默認情況下,PDO在PHP 5.2中爲開啓狀態,但是要啓用對某個數據庫驅動程序的支持,仍需要進行相應的配置操作。

  • 在Windows環境下,PDO在php.ini文件中進行配置,如果想支持某個特定數據庫,只需要把php.ini 文件裏邊所對應的 ;號 去掉即可。
    我們先找到php.ini 配置文件,然後進入
    在這裏插入圖片描述
    在這裏插入圖片描述
    搜索 pdo_
    可以看到我們這裏只打開了 mysql和sqlite。
    注意:開啓過後需要重啓Apache

3.1 我們可以使用 phpinfo() 函數來查看是否開啓。

在這裏插入圖片描述
在這裏插入圖片描述
可以看到我們成功開啓!

四、通過PDO連接數據庫

4.1 PDO的構造函數

在PDO中,要建立與數據庫的連接需要實例化PDO的構造函數,PDO構造函數的語法如下:
__construct(string $dsn[,string $username[,string $password[,array $driver_options]]])

  • dsn:數據源名,包括主機名、端口號和數據庫名稱。
  • username:連接數據庫的用戶名。
  • password:連接數據庫的密碼。
  • driver_options:連接數據庫的其他選項。
    格式:mysql,db_databvase17,127.0.0.1,root,123456
    實例:
$dbms='mysql';//數據庫類型
$host='127.0.0.1';//數據庫主機名 也可以是127.0.0.1
$dbName='db_database17';//使用的數據庫名稱
$user='root';//用戶名
$pass='123456';//對應的密碼
$dsn="$dbms:dbname=$dbName;host=$host";

 $conn= new PDO($dsn,$user,$pass);//初始化一個PDO對象,就是創建了連接數據庫的對象 $conn

構造函數用於,構造PDO對象,有了這個對象,我們我就可以使用裏邊的方法來訪問數據庫。

4.1.1 exec()方法 返回執行後受影響的行數

exec()方法返回執行後受影響的行數,:
通常用於 INSERTDELETEUPDATE語句中。
實例:

try{
    $conn= new PDO($dsn,$user,$pass);//初始化一個PDO對象,就是創建了連接數據庫的對象 $conn
    $query="insert into tb_pdo_mysql(pdo_type,database_name,dates)values('".$_POST['pdo']."','".$_POST['databases']."','".$_POST['dates']."')";
    $result=$conn->exec($query);
    echo "數據添加成功,受影響的行數爲:".$result;                            
} catch (PDOException $e){
    die ("Error!:".$e->getMessage().'<br/>');
}

效果:
在這裏插入圖片描述

4.1.2 query()方法 用於返回執行查詢後的結果集

query()方法用於返回執行查詢後的結果集:
實例:

try{
    $pdo = new PDO($dsn,$user,$pass);
    $sql = 'select * from tb_pdo_mysql';
    $result = $pdo->query($sql);

    foreach ($result as $row) {
        echo "<tr align='center'>"."<td>".$row['id']."</td>";
        echo "<td>".$row['pdo_type']."</td>";
        echo "<td>".$row['database_name']."</td>";
        echo "<td>".$row['dates']."</td>"."</tr>";
    }

} catch (PDOException $e){
    die ("Error!:".$e->getMessage().'<br/>');
}

效果:
在這裏插入圖片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章