目录

  1. 连接 MySQL
  2. 执行 SQL 查询
  3. 预处理语句(防止 SQL 注入)
  4. 获取查询结果
  5. 插入数据
  6. 更新数据
  7. 删除数据
  8. 关闭数据库连接
  9. 错误处理
  10. 参考资料

连接 MySQL

在 PHP 中,可以使用 MySQLi(MySQL Improved Extension)PDO(PHP Data Objects) 连接 MySQL 数据库。

1. 使用 MySQLi(面向过程)

$servername = "localhost";
$username = "root";
$password = "password";
$database = "mydb";

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

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

2. 使用 MySQLi(面向对象)

$servername = "localhost";
$username = "root";
$password = "password";
$database = "mydb";

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

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

3. 使用 PDO

$dsn = "mysql:host=localhost;dbname=mydb;charset=utf8mb4";
$username = "root";
$password = "password";

try {
    $pdo = new PDO($dsn, $username, $password, [
        PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION
    ]);
    echo "连接成功";
} catch (PDOException $e) {
    die("连接失败: " . $e->getMessage());
}


执行 SQL 查询

1. 使用 MySQLi(面向过程)

$sql = "SELECT * FROM users";
$result = mysqli_query($conn, $sql);

2. 使用 MySQLi(面向对象)

$sql = "SELECT * FROM users";
$result = $conn->query($sql);

3. 使用 PDO

$sql = "SELECT * FROM users";
$stmt = $pdo->query($sql);


预处理语句(防止 SQL 注入)

1. MySQLi 预处理语句

$stmt = $conn->prepare("SELECT * FROM users WHERE email = ?");
$stmt->bind_param("s", $email);
$email = "test@example.com";
$stmt->execute();
$result = $stmt->get_result();

2. PDO 预处理语句

$stmt = $pdo->prepare("SELECT * FROM users WHERE email = :email");
$stmt->execute(['email' => 'test@example.com']);
$result = $stmt->fetchAll(PDO::FETCH_ASSOC);


获取查询结果

1. MySQLi 获取数据(面向过程)

while ($row = mysqli_fetch_assoc($result)) {
    echo $row["name"] . "<br>";
}

2. MySQLi 获取数据(面向对象)

while ($row = $result->fetch_assoc()) {
    echo $row["name"] . "<br>";
}

3. PDO 获取数据

foreach ($result as $row) {
    echo $row["name"] . "<br>";
}


插入数据

1. MySQLi 插入数据(面向过程)

$sql = "INSERT INTO users (name, email) VALUES ('Alice', 'alice@example.com')";
mysqli_query($conn, $sql);

2. MySQLi 插入数据(面向对象)

$sql = "INSERT INTO users (name, email) VALUES ('Alice', 'alice@example.com')";
$conn->query($sql);

3. PDO 插入数据

$sql = "INSERT INTO users (name, email) VALUES (:name, :email)";
$stmt = $pdo->prepare($sql);
$stmt->execute(['name' => 'Alice', 'email' => 'alice@example.com']);


更新数据

1. MySQLi 更新数据

$sql = "UPDATE users SET email='new@example.com' WHERE name='Alice'";
$conn->query($sql);

2. PDO 更新数据

$sql = "UPDATE users SET email=:email WHERE name=:name";
$stmt = $pdo->prepare($sql);
$stmt->execute(['email' => 'new@example.com', 'name' => 'Alice']);


删除数据

1. MySQLi 删除数据

$sql = "DELETE FROM users WHERE name='Alice'";
$conn->query($sql);

2. PDO 删除数据

$sql = "DELETE FROM users WHERE name=:name";
$stmt = $pdo->prepare($sql);
$stmt->execute(['name' => 'Alice']);


关闭数据库连接

1. MySQLi 关闭连接

$conn->close();

2. PDO 关闭连接

$pdo = null;


错误处理

1. MySQLi 错误处理(面向对象)

$sql = "INVALID SQL";
if (!$conn->query($sql)) {
    echo "错误: " . $conn->error;
}

2. PDO 错误处理

try {
    $sql = "INVALID SQL";
    $pdo->exec($sql);
} catch (PDOException $e) {
    echo "SQL 错误: " . $e->getMessage();
}


参考资料


这篇教程涵盖了 PHP 连接 MySQL 的基本操作,你是否需要更高级的 MySQL-PHP 操作,比如事务处理、存储过程调用等?