📜  php pdo 连接 - PHP (1)

📅  最后修改于: 2023-12-03 15:33:30.994000             🧑  作者: Mango

PHP PDO 连接

在 PHP 中,使用 PDO(PHP 数据对象)扩展可以连接多种类型的数据库。

连接数据库

首先需要使用相应的驱动程序,例如连接 MySQL 数据库:

<?php
$dsn = 'mysql:host=localhost;dbname=mydb';
$username = 'username';
$password = 'password';

try {
    $conn = new PDO($dsn, $username, $password);
} catch (PDOException $e) {
    echo 'Connection failed: ' . $e->getMessage();
}

其中 $dsn 是数据源名称, 包含数据库类型、主机名、数据库名称等信息。 $username$password 是数据库的用户名和密码。

连接成功后,$conn 将包含一个 PDO 实例,可以用于执行查询和操作数据。

查询数据

查询数据可以使用 PDOStatement 类的实例 query() 方法:

$sql = 'SELECT name, age FROM mytable';
$stmt = $conn->query($sql);

while ($row = $stmt->fetch(PDO::FETCH_ASSOC)) {
    echo $row['name'] . ': ' . $row['age'] . "\n";
}

这个例子中,执行了一个查询语句,然后通过 fetch() 方法获取每一行数据。

插入数据

插入数据可以使用 PDO 类实例的 exec() 方法:

$sql = "INSERT INTO mytable (name, age) VALUES ('Tom', 30)";
$conn->exec($sql);
使用预处理语句

为了防止 SQL 注入攻击,建议使用预处理语句。预处理语句可以通过 PDO 类实例的 prepare() 方法创建。

$sql = "SELECT name, age FROM mytable WHERE id = ?";
$stmt = $conn->prepare($sql);
$stmt->bindParam(1, $id);
$stmt->execute();

while ($row = $stmt->fetch(PDO::FETCH_ASSOC)) {
    echo $row['name'] . ': ' . $row['age'] . "\n";
}

这个例子中,使用了占位符 ? 代替硬编码的值,然后使用 bindParam() 方法将 $id 绑定到占位符上。最后执行查询并获取数据。

总结

使用 PHP PDO 连接数据库十分方便,可以连接多种类型的数据库,支持事务,而且可以防止 SQL 注入攻击。因此,建议开发人员在进行数据库编程时使用 PDO 扩展。