当前位置:首页 > 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 查询示例

$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 注入攻击。

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";
}

php实现mysql

标签: phpmysql
分享给朋友:

相关文章

php实现打印功能

php实现打印功能

PHP实现打印功能的方法 在PHP中实现打印功能可以通过多种方式完成,包括直接输出到浏览器、生成PDF文件、调用打印机接口等。以下是几种常见的方法: 直接输出HTML内容 PHP可以通过echo或p…

php实现分页

php实现分页

PHP实现分页的基本方法 使用原生PHP实现分页功能需要结合数据库查询和HTML展示。以下是核心实现步骤: 数据库查询与分页逻辑 // 连接数据库 $conn = new mysqli('lo…

php实现文件下载

php实现文件下载

PHP 实现文件下载的方法 使用 header() 函数强制下载 设置正确的 HTTP 头信息,强制浏览器下载文件而不是直接打开。 $file = 'path/to/file.pdf'; if (f…

php实现打印功能

php实现打印功能

PHP 实现打印功能的方法 PHP 可以通过多种方式实现打印功能,具体取决于打印的目标(如打印机、PDF、网页等)和需求(如直接打印、生成打印预览等)。以下是几种常见的实现方式: 使用 JavaSc…

php实现分页

php实现分页

PHP实现分页的基本方法 使用LIMIT和OFFSET进行数据库查询分页。通过计算当前页码和每页显示数量,动态生成SQL语句。 $page = isset($_GET['page']) ? (in…

php实现文件上传

php实现文件上传

PHP 文件上传实现方法 在 PHP 中实现文件上传需要处理 HTML 表单和服务器端脚本。以下是详细步骤: 创建 HTML 表单 使用 enctype="multipart/form-data"…