Php Mysql PDO

什么是PDO

PDO全称是PHP Data Objects,是PHP操作数据库的一种方式,是一个轻量级的、高效的、灵活的、安全的PHP扩展库,是PHP的一个标准数据库接口层,可以同时支持多种类型的数据库,如MySQL、PostgreSQL、Oracle和SQL Server等。

为什么要使用PDO

使用PDO来操作数据库有很多好处,如:

安全性:PDO具有自动防范SQL注入等数据库攻击的特性,可以有效地防范SQL注入攻击。

灵活性:PDO可支持多种数据库,方便了程序的移植性,开发者无需考虑数据库不同之处。

性能:相比于其他的数据库扩展,PDO操作MySQL数据库的性能更高一些,因为PDO使用了预处理的技术,可以减少网络传输和数据库解析的次数,提高程序的效率。

如何使用PDO

使用PDO操作数据库需要以下步骤:

连接数据库

try {

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

} catch (PDOException $e) {

echo "Error!: " . $e->getMessage() . "
";

die();

}

首先使用PDO的构造函数连接数据库,构造函数的参数分别是数据库的类型、主机名、数据库名称、用户名和密码,这是连接MySQL数据库时的参数,其他类型数据库的连接参数有所差别。如果连接数据库失败,可以使用try-catch结构捕获异常信息。

执行SQL语句

PDO操作数据库的基本方法是使用exec()、query()和prepare()方法,这三种方法分别用于执行SQL语句。

exec()方法:用于执行SQL语句并返回影响的行数。

$sql = "INSERT INTO students (name, age) VALUES ('Tom', 20)";

$rowCount = $dbh->exec($sql);

echo "Affected rows: " . $rowCount;

这段代码使用了exec()方法向students表中插入一条数据,返回插入行数并输出。

query()方法:用于执行查询SQL语句。

$sql = "SELECT * FROM students";

$stmt = $dbh->query($sql);

foreach($stmt as $row) {

print $row['name'] . "\t" . $row['age'] . "\n";

}

这段代码使用了query()方法查询students表中的所有记录,并输出所有记录的name和age字段值。

prepare()方法:用于执行预处理SQL语句。

$sql = "SELECT * FROM students WHERE age > ?";

$stmt = $dbh->prepare($sql);

$stmt->execute(array(18));

$rows = $stmt->fetchAll(PDO::FETCH_ASSOC);

foreach($rows as $row) {

print $row['name'] . "\t" . $row['age'] . "\n";

}

这段代码使用了prepare()方法执行了一条预处理语句,并传入参数18进行查询,查询结果同样为students表中年龄>18的记录。

关闭数据库连接

$dbh = null;

关闭数据库连接使用PDO类的null方法即可。

后端开发标签