当前位置:   article > 正文

「PHP系列」PHP MySQL 创建数据库/创建表/插入数据_php与mysql能直接创建数据库吗

php与mysql能直接创建数据库吗

一、PHP MySQL 创建数据库

要在 PHP 中使用 MySQL 创建数据库,你通常不能直接通过 PHP 脚本直接在数据库服务器上执行这个操作,因为创建数据库通常是一个管理员级别的操作,需要更高的权限。但是,如果你确实拥有足够的权限,并且出于某种原因需要在 PHP 脚本中执行此操作,你可以使用 mysqliPDO 扩展来连接到 MySQL 服务器并执行 SQL 语句来创建数据库

以下是一个使用 mysqli 扩展的示例:

<?php
// 数据库连接参数
$servername = "localhost";
$username = "your_username";
$password = "your_password";

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

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

// SQL 语句用于创建数据库
$sql = "CREATE DATABASE IF NOT EXISTS my_database_name";

if ($conn->query($sql) === TRUE) {
    echo "数据库创建成功";
} else {
    echo "Error creating database: " . $conn->error;
}

// 关闭连接
$conn->close();
?>
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26

注意

  1. 请将 your_usernameyour_password 替换为你的 MySQL 用户名和密码。
  2. my_database_name 替换为你想要创建的数据库的名称。
  3. 使用 CREATE DATABASE IF NOT EXISTS 语句可以确保如果数据库已经存在,则不会引发错误。
  4. 在生产环境中,直接在 PHP 脚本中执行此类操作可能会带来安全风险。确保你了解这些风险,并考虑使用更安全的方法来管理数据库(例如,使用命令行工具或数据库管理工具)。
  5. 如果你的 PHP 脚本运行在一个 web 服务器上,并且你没有直接访问 MySQL 服务器的权限,那么你可能需要在服务器上配置一个具有适当权限的 MySQL 用户,以便 PHP 脚本可以连接并执行此操作。

二、PHP MySQL 创建表

要在 PHP 中使用 MySQL 创建数据表,你需要首先连接到 MySQL 数据库,然后执行一个 SQL CREATE TABLE 语句。以下是一个使用 mysqli 扩展在 PHP 中创建 MySQL 表的示例:

<?php
// 数据库连接参数
$servername = "localhost";
$username = "your_username";
$password = "your_password";
$dbname = "your_database_name"; // 假设数据库已经存在

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

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

// SQL 语句用于创建表
$sql = "CREATE TABLE IF NOT EXISTS my_table (
    id INT(6) UNSIGNED AUTO_INCREMENT PRIMARY KEY,
    firstname VARCHAR(30) NOT NULL,
    lastname VARCHAR(30) NOT NULL,
    email VARCHAR(50),
    reg_date TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP
)";

if ($conn->query($sql) === TRUE) {
    echo "表创建成功";
} else {
    echo "Error creating table: " . $conn->error;
}

// 关闭连接
$conn->close();
?>
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33

注意

  1. 请将 your_usernameyour_passwordyour_database_namemy_table 替换为你自己的 MySQL 用户名、密码、数据库名称和表名称。
  2. CREATE TABLE 语句中,你可以定义表的列、数据类型、约束等。上面的示例创建了一个包含 idfirstnamelastnameemailreg_date 列的表。
  3. 使用 IF NOT EXISTS 可以确保如果表已经存在,则不会引发错误。
  4. 在生产环境中,直接在 PHP 脚本中执行数据库操作可能会带来安全风险。确保你了解这些风险,并采取适当的安全措施,如使用预处理语句来防止 SQL 注入攻击。
  5. 如果你的 PHP 脚本运行在一个 web 服务器上,并且你没有直接访问 MySQL 服务器的权限,那么你可能需要在服务器上配置一个具有适当权限的 MySQL 用户,以便 PHP 脚本可以连接并执行此操作。

三、PHP MySQL 插入数据

要在 PHP 中使用 MySQL 插入数据,你需要首先连接到 MySQL 数据库,然后执行一个 SQL INSERT INTO 语句。以下是一个使用 mysqli 扩展在 PHP 中插入数据的示例:

<?php
// 数据库连接参数
$servername = "localhost";
$username = "your_username";
$password = "your_password";
$dbname = "your_database_name";

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

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

// 准备插入的数据
$firstname = "John";
$lastname = "Doe";
$email = "john.doe@example.com";

// SQL 插入语句
$sql = "INSERT INTO my_table (firstname, lastname, email) VALUES ('$firstname', '$lastname', '$email')";

if ($conn->query($sql) === TRUE) {
    echo "新记录插入成功";
} else {
    echo "Error: " . $sql . "<br>" . $conn->error;
}

// 关闭连接
$conn->close();
?>
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32

注意

  1. 请将 your_usernameyour_passwordyour_database_namemy_table 替换为你自己的 MySQL 用户名、密码、数据库名称和表名称。
  2. 在上面的示例中,我们直接在 SQL 语句中插入了变量 $firstname$lastname$email 的值。然而,这样做容易受到 SQL 注入攻击。为了更安全地插入数据,你应该使用预处理语句(prepared statements)和绑定参数。

下面是一个使用预处理语句和绑定参数的示例:

// ...(之前的连接代码保持不变)...

// 准备插入的数据
$firstname = "John";
$lastname = "Doe";
$email = "john.doe@example.com";

// SQL 插入语句(使用预处理语句的占位符)
$sql = "INSERT INTO my_table (firstname, lastname, email) VALUES (?, ?, ?)";

// 准备语句
$stmt = $conn->prepare($sql);

// 绑定参数
$stmt->bind_param("sss", $firstname, $lastname, $email);

// 执行语句
if ($stmt->execute() === TRUE) {
    echo "新记录插入成功";
} else {
    echo "Error: " . $sql . "<br>" . $conn->error;
}

// 关闭语句和连接
$stmt->close();
$conn->close();
?>
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27

使用预处理语句和绑定参数可以确保数据被正确地转义,从而防止 SQL 注入攻击。这是一种更安全、更推荐的做法。

四、相关链接

  1. PHP官网
  2. MySQL官网
  3. PHP_Github
  4. PHP实现Token
  5. 「PHP系列」PHP简介与起步
  6. 「PHP系列」PHP语法介绍
  7. 「PHP系列」PHP变量
  8. 「PHP系列」PHP echo/print语句、数据类型详解
  9. 「PHP系列」PHP 常量/字符串、类型比较
  10. 「PHP系列」PHP 运算符详解
  11. 「PHP系列」If…Else语句/switch语句
  12. 「PHP系列」数组详解
  13. 「PHP系列」PHP数组排序及运用场景
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/小丑西瓜9/article/detail/616452
推荐阅读
相关标签
  

闽ICP备14008679号