PHP MySQL 创建数据库
                           
天天向上
发布: 2025-03-22 00:04:01

原创
560 人浏览过

在 PHP 中,可以使用 MySQLiPDO 连接 MySQL 并创建数据库。以下是详细解析,包括 出站链接内容链接,确保全面理解和实践。


1. 使用 MySQLi 创建数据库

1.1 过程化风格

<?php
$servername = "localhost"; // 服务器地址
$username = "root";        // MySQL 用户名
$password = "";            // MySQL 密码

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

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

// 创建数据库 SQL 语句
$sql = "CREATE DATABASE my_database"; 

if (mysqli_query($conn, $sql)) {
    echo "数据库创建成功";
} else {
    echo "错误: " . mysqli_error($conn);
}

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

📌 解析

  • 先连接 MySQL 服务器(不指定数据库)。
  • 运行 CREATE DATABASE my_database; SQL 语句。
  • 关闭连接。

1.2 面向对象风格

<?php
$servername = "localhost";
$username = "root";
$password = "";

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

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

// 创建数据库
$sql = "CREATE DATABASE my_database";
if ($conn->query($sql) === TRUE) {
    echo "数据库创建成功";
} else {
    echo "错误: " . $conn->error;
}

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

📌 面向对象风格与过程化的区别

  • 过程化:使用 mysqli_connect() 进行连接,使用 mysqli_query() 执行 SQL。
  • 面向对象:使用 new mysqli() 进行连接,使用 $conn->query() 执行 SQL。

2. 使用 PDO 创建数据库(推荐)

<?php
$servername = "localhost";
$username = "root";
$password = "";

try {
    // 连接 MySQL 服务器
    $pdo = new PDO("mysql:host=$servername", $username, $password);
    $pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);

    // 创建数据库
    $sql = "CREATE DATABASE my_database";
    $pdo->exec($sql);
    echo "数据库创建成功";
} catch (PDOException $e) {
    echo "错误: " . $e->getMessage();
}

// 关闭连接
$pdo = null;
?>

📌 PDO 方式的优势

  • 支持多种数据库(MySQL、PostgreSQL、SQLite 等)。
  • 默认启用异常处理PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION)。
  • 代码更安全、扩展性更强

3. 创建数据库时的常见错误与解决方案

3.1 “Access denied for user ‘root’@’localhost'”

错误原因

  • 账户或密码错误。
  • MySQL 可能未正确启动。
  • 用户权限不足。

解决方案

  • 确保 MySQL 已启动:
  systemctl start mysql
  • 确保 root 用户有权限:
  GRANT ALL PRIVILEGES ON *.* TO 'root'@'localhost' IDENTIFIED BY 'your_password';
  FLUSH PRIVILEGES;

3.2 “Unknown database”

错误原因

  • 连接时指定了不存在的数据库。

解决方案

  • 使用 SHOW DATABASES; 查看数据库是否存在:
  SHOW DATABASES;
  • 确保 CREATE DATABASE 语句拼写正确。

3.3 “Database exists”

错误原因

  • 数据库已存在,尝试重复创建。

解决方案

  • 使用 IF NOT EXISTS 避免重复创建:
  $sql = "CREATE DATABASE IF NOT EXISTS my_database";

4. MySQL 数据库管理

操作SQL 语句
创建数据库CREATE DATABASE my_database;
删除数据库DROP DATABASE my_database;
显示所有数据库SHOW DATABASES;
选择数据库USE my_database;

📌 推荐参考

更多详细内容请关注其他相关文章!

发表回复 0

Your email address will not be published. Required fields are marked *