「PHP系列」PHP MySQL 创建数据库/创建表/插入数据

文章目录

  • 一、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. 请将 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. 请将 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. 请将 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();
?>

使用预处理语句和绑定参数可以确保数据被正确地转义,从而防止 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数组排序及运用场景

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mfbz.cn/a/595179.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

突破销量瓶颈:亚马逊,速卖通,国际站销量提升实战技巧

1、精心选品&#xff1a;选品是亚马逊销售的第一步&#xff0c;也是至关重要的一步。卖家应该进行市场调研&#xff0c;了解消费者的需求和喜好&#xff0c;选择有市场潜力的产品。要注意产品的差异化&#xff0c;避免与竞争对手的产品过于相似。 2、优化产品详情页&#xff1…

【SpringMVC 】什么是SpringMVC(二)?如何整合ssm框架以及使用mybatisPlus?

文章目录 SpringMVC第三章1、ssm整合1、基本步骤1-3步4-5步6步7步8-12步13步14-15步2、添加数据3、删除数据4、配置事务5、修改数据2、pageHelpe分页1、基本步骤第四章1、mybatisPlus1、基本步骤1-45-7892、基本方法的使用查询2、新ssm项目1、基本步骤1-5678-910-111213-15Spri…

✌粤嵌—2024/4/29—轮转数组

代码实现&#xff1a; // 逆置数组 void nizhi_array(int *nums, int l, int r) { // 左闭右闭if (l > r) {return;}int i l, j r;while (i < j) {int temp nums[i];nums[i] nums[j];nums[j] temp;i;j--;} }void rotate(int *nums, int numsSize, int k) {if (k >…

CSAPP | Chapter 1 | 计算机系统漫游

CSAPP | Chapter 1 | 计算机系统漫游 计算机系统由系统软件与硬件组成。 对于一个简单的 C 程序 hello.c 来说&#xff0c;即便它非常简单&#xff0c;但是为了让它运行&#xff0c;系统的每个主要组成部分都需要协调工作。 #include <stdio.h>int main() {printf(&quo…

AI适老化!10秒一张的AI姓氏头像,居然要卖9块9?中老年用户都说好!

看短视频的你&#xff0c;一定会刷到过这样的直播间&#xff1a; 现在大家明白了&#xff0c;这是一个做姓氏图像的直播间。我刚开始刷到的时候也觉得这种头像好看&#xff0c;高大上&#xff0c;也想做一个这样的图像&#xff0c;来当自己的微信头像。 做这样的图像需要排队刷…

迅饶科技 X2Modbus 网关 AddUser 任意用户添加漏洞复现

0x01 产品简介 X2Modbus是上海迅饶自动化科技有限公司Q开发的一款功能很强大的协议转换网关, 这里的X代表各家不同的通信协议, 2是T0的谐音表示转换, Modbus就是最终支持的标准协议是Modbus协议。用户可以根据现场设备的通信协议进行配置,转成标准的Modbus协议。在PC端仿真…

代码随想录算法训练营DAY43|C++动态规划Part5|1049.最后一块石头的重量II、494.目标和、474.一和零

文章目录 1049.最后一块石头的重量II思路CPP代码 ⭐️494.目标和回溯算法抽象成01背包问题CPP代码本题总结 474.一和零思路CPP代码 1049.最后一块石头的重量II 力扣题目链接 文章链接&#xff1a;1049.最后一块石头的重量II 视频链接&#xff1a;这个背包最多能装多少&#xff…

高中数学-三角函数之常见题型总结

相关公式 新教材&#xff0c;取消了和差化积与积化和差的三角函数题目 例题1 解析 根据条件tanθ -2&#xff0c;我们应该就要想到&#xff0c;把待求式的角向θ靠拢 所以要想到如何降角&#xff0c;将2θ化成θ&#xff0c;那么&#xff0c;想到的公式就是&#xff1a;正弦…

【C++第三阶段】Set Map容器 员工分组案例

以下内容仅为当前认识&#xff0c;可能有不足之处&#xff0c;欢迎讨论&#xff01; 文章目录 Set容器构造和赋值大小和交换插入和删除一次性迭代器&#xff08;可能迅速失效的迭代器&#xff09;长久保留的迭代器如何判断迭代器是否一次性 查找和统计set和multiset的区别pari对…

【notes2】并发,IO,内存

文章目录 1.线程/协程/异步&#xff1a;并发对应硬件资源是cpu&#xff0c;线程是操作系统如何利用cpu资源的一种抽象2.并发&#xff1a;cpu&#xff0c;线程2.1 可见性&#xff1a;volatile2.2 原子性&#xff08;读写原子&#xff09;&#xff1a;AtomicInteger/synchronized…

239 基于matlab的EKF(扩展卡尔曼滤波)_UKF(无迹卡尔曼滤波)_PF(粒子滤波)三种算法的估计结果比较

基于matlab的EKF(扩展卡尔曼滤波)_UKF(无迹卡尔曼滤波)_PF&#xff08;粒子滤波&#xff09;三种算法的估计结果比较&#xff0c;输出估计误差&#xff0c;并单独对粒子滤波进行估计及其置信区间可视化。程序已调通&#xff0c;可直接运行。 239 EKF(扩展卡尔曼滤波) - 小红书 …

Unity | Shader基础知识(第十三集:编写内置着色器阶段总结和表面着色器的补充介绍)

目录 前言 一、表面着色器的补充介绍 二、案例viewDir详解 1.viewDir是什么 2.viewDir的作用 3.使用viewDir写shader 前言 注意观察的小伙伴会发现&#xff0c;这组教程前半部分我们在编写着色器的时候&#xff0c;用的是顶点着色器和片元着色器的组合。 SubShader{CGPRO…

Java转Kotlin

Kotlin 是一种静态编程语言 2011JetBrains开始开发Kotlin&#xff0c;用于多平台应用&#xff08;能脱离虚拟机&#xff0c;直接编译成可以在win,mac,linux运行的二进制代码&#xff09; 2017获得谷歌官方支持 语法简洁&#xff08;减少了大量的样板代码&#xff0c;语法糖&…

【Python深度学习(第二版)(2)】深度学习之前:机器学习简史

文章目录 一. 深度学习的起源1. 概率建模--机器学习分类器2. 早期神经网络--反向传播算法的转折3. 核方法 -- 忽略神经网络4. 决策树、随机森林和梯度提升机5. 神经网络替代svm与决策树 二. 深度学习与机器学习有何不同 可以这样说&#xff0c;当前工业界所使用的大部分机器学习…

服务器端口怎么查,服务器端口查看方法详解

服务器端口是网络通信的关键组件&#xff0c;对于网络管理员和系统管理员来说&#xff0c;了解和掌握如何查看服务器端口是非常重要的。接下来介绍两种常用的方法来查看服务器端口。 方法一&#xff1a;使用命令提示符&#xff08;CMD&#xff09; 1. 首先&#xff0c;点击电脑…

JavaScript百炼成仙自学笔记——12

函数七重关之五&#xff08;自执行函数&#xff09; 什么时候用它&#xff1f; 很多时候&#xff0c;我们只想执行一个函数&#xff0c;却无所谓这个函数叫什么名字。那么这种情况下就可以考虑使用自执行函数。 {function(){console.log(123);} }(); 这就是一个简单的自执行的…

视频剪辑:视频文件元数据修改工具,批量操作提升效率和准确性

在视频剪辑和后期处理的过程中&#xff0c;除了对视频本身的编辑和修改&#xff0c;元数据的管理和修改同样重要。元数据&#xff0c;如标题、艺术家、专辑封面等&#xff0c;不仅提供了视频文件的基本信息&#xff0c;还有助于更好地组织、搜索和共享视频内容。而针对视频文件…

dumpsys meminfo 流程中细节

源码基于&#xff1a;Android U 参考&#xff1a; dumpsys meminfo 详解(R) dumpsys meminfo 详解(U) 1. 命令入口 MemBinder frameworks/base/services/core/java/com/android/server/am/AMS.javastatic class MemBinder extends Binder {ActivityManagerService mActivity…

原型模式和建造者模式

1、原型模式 1.1 概念 用一个已经创建的实例作为原型&#xff0c;通过复制该原型对象来创建一个和原型对象相同的新对象。 1.2 结构 原型模式包含如下角色&#xff1a; 抽象原型类&#xff1a;规定了具体原型对象必须实现的的 clone() 方法。 具体原型类&#xff1a;实现抽…

链表经典面试题01

目录 引言 面试题01:返回倒数第k个节点 题目描述: 思路分析: 代码展示: 面试题02:链表的回文结构 题目描述: 描述 思路分析: 代码展示: 面试题03:相交链表 题目描述: 思路分析: 代码展示: 小结: 引言 这次的题均来自力扣和牛客有关链表的经典面试题,代码只会展示…
最新文章