REC

PHP使用PDO连接数据库

易航
3年前发布 /正在检测是否收录...

一、什么是PDO?

PDO是PHP Date Object(PHP数据对象)的简称,它是与PHP 5.1版本一起发行的。
目前支持的数据库包括Firebird、FreeTDS、Interbase、MySQL、MS SQL Server、ODBC、Oracle、Postgre SQL、SQLite和Sybase。

PHP开发

有了PDO,您不必再使用mysql_函数、oci_函数或者mssql_*函数,也不必再为它们封装数据库操作类,只需要使用PDO接口中的方法就可以对数据库进行操作。在选择不同的数据库时,只需修改PDO的DSN(数据源名称)。
在PHP 6中将默认使用PDO连接数据库,所有非PDO扩展将会在PHP 6中被移除。该扩展提供PHP内置类PDO来对数据库进行访问,不同数据库使用相同的方法名,以解决数据库连接不统一的问题。

二、PDO的作用与特点

统一各种数据库的访问接口
PDO是一个“数据库访问抽象层”,作用是统一各种数据库的访问接口,与mysql和mssql函数库相比,PDO让跨数据库的使用更具有亲和力;与ADODB和MDB2相比,PDO更高效。

图片[1] - PHP使用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

图片[2] - PHP使用PDO连接数据库 - 易航博客

我们可以使用输出 phpinfo() 函数来查看是否开启。

四、通过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对象,有了这个对象,我们我就可以使用里边的方法来访问数据库。


exec() 方法返回执行后受影响的行数,:
通常用于 INSERTDELETEUPDATE 语句中。
实例:

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


query() 方法用于返回执行查询后的结果集:
实例:

<?php
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/>');
}
?>
© 版权声明
本站用户发帖仅代表本站用户个人观点,并不代表本站赞同其观点和对其真实性负责。
转载本网站任何内容,请按照转载方式正确书写本站原文地址。
THE END
喜欢就支持一下吧
点赞 3 分享 赞赏
评论 抢沙发
取消 登录评论