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/>');
}

效果:
在这里插入图片描述

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