欢迎访问宙启技术站
智能推送

php pdo连接数据库操作示例

发布时间:2023-05-18 13:28:23

PHP PDO是PHP语言的一种数据库访问方式,是一种安全稳定的访问数据库的方法。它通过数据库连接池的方式来与数据库建立连接,使得PHP应用能够在高并发、高负载的情况下安全稳定地执行对数据库的操作。

在使用PDO连接数据库之前,需要安装pdo_mysql扩展和mysql数据库。PDO的连接方式有以下几种:

1. 通过DSN连接数据库

DSN是Data Source Name的缩写,可以包含数据库的类型、主机名、数据库名称等信息。下面是一个例子:

$dbh = new PDO('mysql:host=localhost;dbname=test', $user, $pass);

这个例子中,使用PDO连接了一个名为test的MySQL数据库。

2. 通过PDO的构造函数连接数据库

通过PDO的构造函数连接数据库是通过指定数据库的参数来连接数据库,参数包括数据库的类型、主机名、数据库名称、用户名和密码等。下面是一个例子:

$dbhost = 'localhost';
$dbname = 'test';
$dbuser = 'root';
$dbpass = '123456';
try {
    $dbh = new PDO("mysql:host=$dbhost;dbname=$dbname", $dbuser, $dbpass);
    $dbh->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
} catch (PDOException $e) {
    echo "连接失败:" . $e->getMessage();
    exit;
}

在这个例子中,通过try-catch语句来处理连接失败时的异常信息。

3. 通过PDO连接池连接数据库

PDO连接池是一种多连接共享的机制,它可以使得PHP应用在线程间、请求间安全可靠地共享连接。

连接池也可以通过PDO的构造函数来创建:

class MyPDO extends PDO {
    public static $instance;

    public function __construct($dsn, $username, $passwd, $options = array()) {
        parent::__construct($dsn,$username,$passwd, $options);
        $this->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
        self::$instance = $this;
    }

    public static function getInstance() {
        return self::$instance;
    }
}

这个例子中,定义了一个MyPDO类,通过设置静态变量$instance来使得多次连接实例公用同一个连接。

在连接数据库之后,就可以执行一系列的数据库操作了,包括查询和写操作。

查询操作可以用以下代码实现:

$sql = "SELECT * FROM USER WHERE id=1";
$stmt = $dbh->prepare($sql);
$stmt->execute();
$result = $stmt->fetchAll(PDO::FETCH_ASSOC);

这里使用了prepare()方法来进行安全查询,在execute()方法中可以绑定变量(参数),最后通过fetch(PDO::FETCH_ASSOC)方法来获取查询结果。

写操作可以用以下代码实现:

$sql = "INSERT INTO USER (username, password) VALUES (?, ?)";
$stmt = $dbh->prepare($sql);
$stmt->bindParam(1, $username);
$stmt->bindParam(2, $password);
$stmt->execute();

prepare()方法同样用于安全的写操作,bindParam()方法用于绑定参数,最后调用execute()方法来执行写操作。

以上就是使用PDO连接数据库的操作示例,希望能够帮助到你。