PHP MySQL 创建数据库
在 PHP 中,可以使用 MySQLi 或 PDO 连接 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; |
📌 推荐参考:
更多详细内容请关注其他相关文章!