在 PHP 中操作数据库入门
现代Web开发离不开高效的数据管理。PHP作为最流行的服务器端语言之一,为开发者提供了与各种数据库管理系统(DBMS)交互的强大工具。在本文中,我们将介绍两种截然不同但同样流行的数据库管理系统:关系型数据库 PostgreSQL 和文档型数据库 MongoDB。
对于初学者开发者来说,在SQL和NoSQL之间做出选择可能看起来很困难。我们将分析它们的关键区别,学习如何从PHP连接到这两种数据库,并执行基本的CRUD操作(创建、读取、更新、删除)。阅读完本文后,您将能够为您的项目独立选择合适的数据库管理系统,并编写与之交互的工作代码。
1. PostgreSQL:通过PDO操作关系型数据
PostgreSQL是一个强大的开源对象关系型数据库管理系统。它支持复杂查询、事务和高级数据类型。要在PHP中操作PostgreSQL,建议使用PDO (PHP Data Objects)扩展,它为操作不同数据库提供了统一的接口。
通过PDO连接到PostgreSQL
第一步是安装pdo_pgsql驱动。确保已在php.ini中启用它。之后,您可以创建连接:
<?php$host = 'localhost';$dbname = 'my_database';$user = 'my_user';$password = 'my_password';
try { $pdo = new PDO("pgsql:host=$host;dbname=$dbname", $user, $password); $pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); echo "成功连接到PostgreSQL!";} catch (PDOException $e) { die("连接错误:" . $e->getMessage());}?>PostgreSQL中的CRUD操作
我们来看看如何操作包含id、name和email字段的users表。所有查询均使用预处理语句执行,以防止SQL注入。
创建记录:
<?php$sql = "INSERT INTO users (name, email) VALUES (:name, :email)";$stmt = $pdo->prepare($sql);$stmt->execute([':name' => 'Ivan Petrov', ':email' => 'ivan@example.com']);echo "用户已添加。ID: " . $pdo->lastInsertId();?>读取数据:
<?php$sql = "SELECT * FROM users WHERE id = :id";$stmt = $pdo->prepare($sql);$stmt->execute([':id' => 1]);$user = $stmt->fetch(PDO::FETCH_ASSOC);
if ($user) { echo "姓名:" . $user['name'] . ",邮箱:" . $user['email'];} else { echo "未找到用户。";}?>更新和删除:
<?php// 更新$sql = "UPDATE users SET email = :email WHERE id = :id";$stmt = $pdo->prepare($sql);$stmt->execute([':email' => 'new_email@example.com', ':id' => 1]);echo "更新的行数:" . $stmt->rowCount();
// 删除$sql = "DELETE FROM users WHERE id = :id";$stmt = $pdo->prepare($sql);$stmt->execute([':id' => 1]);echo "删除的行数:" . $stmt->rowCount();?>2. MongoDB:通过MongoDB PHP库操作文档
MongoDB是一个NoSQL数据库,它将数据存储在类似JSON的灵活文档中。要在PHP中操作它,使用官方mongodb/mongodb库,该库通过Composer安装。
安装并连接到MongoDB
首先,通过Composer安装库:
composer require mongodb/mongodb之后,创建到MongoDB服务器(默认运行在27017端口)的连接: