当前位置:首页 > PHP

php实现mysql

2026-01-13 13:36:07PHP

PHP 连接 MySQL 的基本方法

PHP 提供了多种方式与 MySQL 数据库进行交互,以下是最常用的几种方法。

使用 MySQLi 扩展

MySQLi 是 MySQL 的改进扩展,支持面向对象和面向过程两种编程风格。

面向对象风格示例:

$servername = "localhost";
$username = "username";
$password = "password";
$dbname = "database";

// 创建连接
$conn = new mysqli($servername, $username, $password, $dbname);

// 检查连接
if ($conn->connect_error) {
    die("Connection failed: " . $conn->connect_error);
}
echo "Connected successfully";

面向过程风格示例:

$conn = mysqli_connect("localhost", "username", "password", "database");

if (!$conn) {
    die("Connection failed: " . mysqli_connect_error());
}
echo "Connected successfully";

使用 PDO (PHP Data Objects)

PDO 提供了一个数据访问抽象层,可以支持多种数据库。

$servername = "localhost";
$username = "username";
$password = "password";
$dbname = "database";

try {
    $conn = new PDO("mysql:host=$servername;dbname=$dbname", $username, $password);
    $conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
    echo "Connected successfully"; 
}
catch(PDOException $e) {
    echo "Connection failed: " . $e->getMessage();
}

执行查询操作

MySQLi 查询示例

$sql = "SELECT id, name FROM users";
$result = $conn->query($sql);

if ($result->num_rows > 0) {
    while($row = $result->fetch_assoc()) {
        echo "id: " . $row["id"]. " - Name: " . $row["name"]. "<br>";
    }
} else {
    echo "0 results";
}

PDO 查询示例

php实现mysql

$stmt = $conn->prepare("SELECT id, name FROM users");
$stmt->execute();

$result = $stmt->setFetchMode(PDO::FETCH_ASSOC);
foreach($stmt->fetchAll() as $row) {
    echo "id: " . $row["id"]. " - Name: " . $row["name"]. "<br>";
}

插入数据操作

MySQLi 插入数据

$sql = "INSERT INTO users (name, email) VALUES ('John Doe', 'john@example.com')";

if ($conn->query($sql) === TRUE) {
    echo "New record created successfully";
} else {
    echo "Error: " . $sql . "<br>" . $conn->error;
}

PDO 插入数据

$sql = "INSERT INTO users (name, email) VALUES (?, ?)";
$stmt = $conn->prepare($sql);
$stmt->execute(['John Doe', 'john@example.com']);

echo "New record created successfully";

关闭连接

MySQLi 关闭连接

$conn->close();

PDO 关闭连接

$conn = null;

安全注意事项

使用预处理语句可以有效防止 SQL 注入攻击。

php实现mysql

MySQLi 预处理示例

$stmt = $conn->prepare("INSERT INTO users (name, email) VALUES (?, ?)");
$stmt->bind_param("ss", $name, $email);

$name = "John Doe";
$email = "john@example.com";
$stmt->execute();

echo "New record created successfully";

PDO 预处理示例

$stmt = $conn->prepare("INSERT INTO users (name, email) VALUES (:name, :email)");
$stmt->bindParam(':name', $name);
$stmt->bindParam(':email', $email);

$name = "John Doe";
$email = "john@example.com";
$stmt->execute();

echo "New record created successfully";

错误处理

MySQLi 错误处理

if (!$conn->query("INSERT INTO users (name) VALUES ('John')")) {
    echo "Error: " . $conn->error;
}

PDO 错误处理

try {
    $conn->query("INVALID SQL");
} catch(PDOException $e) {
    echo "Error: " . $e->getMessage();
}

事务处理

MySQLi 事务示例

$conn->autocommit(FALSE);

$conn->query("UPDATE accounts SET balance = balance - 100 WHERE user_id = 1");
$conn->query("UPDATE accounts SET balance = balance + 100 WHERE user_id = 2");

if ($conn->commit()) {
    echo "Transaction completed successfully";
} else {
    $conn->rollback();
    echo "Transaction failed";
}

PDO 事务示例

$conn->beginTransaction();

$conn->exec("UPDATE accounts SET balance = balance - 100 WHERE user_id = 1");
$conn->exec("UPDATE accounts SET balance = balance + 100 WHERE user_id = 2");

if ($conn->commit()) {
    echo "Transaction completed successfully";
} else {
    $conn->rollBack();
    echo "Transaction failed";
}

标签: phpmysql
分享给朋友:

相关文章

php实现购物车

php实现购物车

PHP实现购物车功能 购物车功能是电商网站的核心模块之一,通常涉及商品添加、删除、数量修改和结算等操作。以下是使用PHP实现购物车功能的几种方法。 使用Session存储购物车数据 Session…

php实现文件下载

php实现文件下载

PHP实现文件下载的方法 通过PHP实现文件下载功能,可以采用多种方式,以下是几种常见的实现方法: 使用header()函数强制下载 设置HTTP头信息,强制浏览器下载文件而非直接打开: $fi…

php实现搜索功能

php实现搜索功能

实现基本的搜索功能 在PHP中实现搜索功能通常涉及数据库查询。以下是一个简单的实现方式,假设使用MySQL数据库: <?php // 连接数据库 $conn = new mysqli('loc…

php实现树

php实现树

PHP实现树结构的方法 在PHP中实现树结构通常可以通过递归或迭代的方式完成。以下是几种常见的实现方法: 递归实现树结构 递归是处理树结构的自然方式,尤其适用于具有未知深度的树。 class Tr…

php 实现自动收货

php 实现自动收货

PHP 实现自动收货功能 自动收货功能通常用于电商系统,在订单超过一定时间未手动确认收货时自动完成订单。以下是实现方法: 数据库设计 需要订单表包含以下关键字段: CREATE TABLE…

git php实现

git php实现

Git 与 PHP 的集成实现 使用 PHP 执行 Git 命令 通过 PHP 的 exec()、shell_exec() 或 passthru() 函数可以直接调用 Git 命令,适用于服务器端操作…