PHP怎样连接MySQL数据库?

方法一:使用 mysqli 扩展

mysqli 是 MySQL 的改进版扩展,提供了面向对象和过程化的接口。

面向对象风格

php 复制代码
<?php

$servername = "localhost";
$username = "your_username";
$password = "your_password";
$dbname = "your_database";

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

// 检查连接
if ($conn->connect_error) {
    die("连接失败: " . $conn->connect_error);
}

echo "连接成功";

// 执行查询示例
$sql = "SELECT id, name FROM your_table";
$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 结果";
}

// 关闭连接
$conn->close();

?>

过程化风格

php 复制代码
<?php

$servername = "localhost";
$username = "your_username";
$password = "your_password";
$dbname = "your_database";

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

// 检查连接
if (!$conn) {
    die("连接失败: " . mysqli_connect_error());
}

echo "连接成功";

// 执行查询示例
$sql = "SELECT id, name FROM your_table";
$result = mysqli_query($conn, $sql);

if (mysqli_num_rows($result) > 0) {
    // 输出数据
    while($row = mysqli_fetch_assoc($result)) {
        echo "id: " . $row["id"]. " - Name: " . $row["name"]. "<br>";
    }
} else {
    echo "0 结果";
}

// 关闭连接
mysqli_close($conn);

?>

方法二:使用 PDO 扩展

PDO 提供了一个统一的接口来访问多种数据库,支持参数化查询,能有效防止SQL注入。

php 复制代码
<?php

$servername = "localhost";
$username = "your_username";
$password = "your_password";
$dbname = "your_database";

try {
    // 创建连接
    $conn = new PDO("mysql:host=$servername;dbname=$dbname", $username, $password);
    // 设置 PDO 错误模式为异常
    $conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);

    echo "连接成功";

    // 执行查询示例
    $sql = "SELECT id, name FROM your_table";
    $stmt = $conn->prepare($sql);
    $stmt->execute();

    // 设置结果为关联数组
    $result = $stmt->setFetchMode(PDO::FETCH_ASSOC);
    foreach ($stmt->fetchAll() as $row) {
        echo "id: " . $row["id"]. " - Name: " . $row["name"]. "<br>";
    }
} catch(PDOException $e) {
    echo "连接失败: " . $e->getMessage();
}

// 连接会在脚本结束时自动关闭,但你可以显式关闭
$conn = null;

?>

我的个人PHP项目:

PHP全文检索引擎 WindSearch: https://github.com/rock365/windsearch

请帮我点个star~谢谢你!

相关推荐
小吴编程之路20 小时前
MySQL 索引核心特性深度解析:从底层原理到实操应用
数据库·mysql
~莫子20 小时前
MySQL集群技术
数据库·mysql
凤山老林20 小时前
SpringBoot 使用 H2 文本数据库构建轻量级应用
java·数据库·spring boot·后端
就不掉头发20 小时前
Linux与数据库进阶
数据库
与衫20 小时前
Gudu SQL Omni 技术深度解析
数据库·sql
咖啡の猫21 小时前
Redis桌面客户端
数据库·redis·缓存
oradh21 小时前
Oracle 11g数据库软件和数据库静默安装
数据库·oracle
what丶k21 小时前
如何保证 Redis 与 MySQL 数据一致性?后端必备实践指南
数据库·redis·mysql
_半夏曲21 小时前
PostgreSQL 13、14、15 区别
数据库·postgresql
把你毕设抢过来21 小时前
基于Spring Boot的社区智慧养老监护管理平台(源码+文档)
数据库·spring boot·后端