「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.mzph.cn/news/836305.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Vue router(路由守卫)

全局路由守卫 全局前置守卫 (router.beforeEach): 位置&#xff1a;在src/router/index.js文件中配置。 作用&#xff1a;对任何路由跳转&#xff08;包括首次加载、手动导航、编程式导航&#xff09;进行统一拦截。 示例代码&#xff1a; const router new VueRouter({ /* .…

一个物业管理服务项目的思考——智慧停车场无人值守呼叫系统到电梯五方对讲再到呼叫中心

目录 起源智慧停车场无人值守呼叫系统然后电梯五方对讲系统又然后物业呼叫中心集控E控中心怎么做 之前介绍过一个关于 点这个链接&#xff1a;门卫、岗亭、值班室、门房、传达室如果距离办公室和机房比较远的情况下怎么实现电话通话&#xff0c;基本上属于物业管理服务的范围。…

强化学习在一致性模型中的应用与实验验证

在人工智能领域&#xff0c;文本到图像的生成任务一直是研究的热点。近年来&#xff0c;扩散模型和一致性模型因其在图像生成中的卓越性能而受到广泛关注。然而&#xff0c;这些模型在生成速度和微调灵活性上存在局限。为了解决这些问题&#xff0c;康奈尔大学的研究团队提出了…

【STM32+HAL+Proteus】系列学习教程---中断(NVIC、EXTI、按键)

实现目标 1、掌握STM32的中断知识 2、学会STM32CubeMX软件关于中断的配置 3、具体目标&#xff1a;1、外部中断检测按键&#xff0c;每按一次计一次数&#xff0c;满5次LED1状态取反。 一、中断概述 1.1、中断定义 CPU执行程序时&#xff0c;由于发生了某种随机的事件(包括…

实验室纳新宣讲会(java后端)

前言 这是陈旧已久的草稿2021-09-16 15:41:38 当时我进入实验室&#xff0c;也是大二了&#xff0c;实验室纳新需要宣讲&#xff0c; 但是当时有疫情&#xff0c;又没宣讲成。 现在2024-5-12 22:00:39&#xff0c;发布到[个人]专栏中。 实验室纳新宣讲会&#xff08;java后…

基于GD32的简易数字示波器(4)- 软件

这期记录的是项目实战&#xff0c;做一个简易的数字示波器。 教程来源于嘉立创&#xff0c;帖子主要做学习记录&#xff0c;方便以后查看。 本期主要介绍GD32的keil5环境和串口下载。详细教程可观看下方链接。 软件-第1讲-工程模板新建_哔哩哔哩_bilibili 2.1 开发环境搭建 …

logback日志持久化

1、问题描述 使用logback持久化记录日志。 2、我的代码 logback是Springboot框架里自带的&#xff0c;所以只要引入“spring-boot-starter”就行了。无需额外引入logback依赖。 pom.xml <?xml version"1.0" encoding"UTF-8"?> <project xmlns&…

2005-2022年各省居民人均可支配收入数据(含城镇居民人均可支配收入、农村居民人均可支配收入)(无缺失)

2005-2022年各省居民人均可支配收入数据&#xff08;含城镇居民人均可支配收入、农村居民人均可支配收入&#xff09;&#xff08;无缺失&#xff09; 1、时间&#xff1a;2005-2022年 2、来源&#xff1a;国家统计局、统计年鉴 3、指标&#xff1a;全体居民人均可支配收入、…

探索大型语言模型(LLM)的世界

​ 引言 大型语言模型&#xff08;LLM&#xff09;作为人工智能领域的前沿技术&#xff0c;正在重塑我们与机器的交流方式&#xff0c;在医疗、金融、技术等多个行业领域中发挥着重要作用。本文将从技术角度深入分析LLM的工作原理&#xff0c;探讨其在不同领域的应用&#xff0…

开源软件托管平台gogs操作注意事项

文章目录 一、基本说明二、gogs私有化部署三、设置仓库git链接自动生成参数四、关闭新用户注册入口 私有化部署gogs托管平台&#xff0c;即把gogs安装在我们自己的电脑或者云服务器上。 一、基本说明 系统环境&#xff1a;ubuntu 20.4docker安装 二、gogs私有化部署 前期准…

【编写控制手机压测的脚本】

编写一个控制手机压测的脚本可以使用Python语言来实现。以下是一个简单的示例脚本&#xff1a; import subprocess import time# 打开app subprocess.call(["adb", "shell", "am", "start", "-n", "com.example.app/.…

Ansible常用变量【上】

转载说明&#xff1a;如果您喜欢这篇文章并打算转载它&#xff0c;请私信作者取得授权。感谢您喜爱本文&#xff0c;请文明转载&#xff0c;谢谢。 在Ansible中会用到很多的变量&#xff0c;Ansible常用变量包括以下几种&#xff1a; 1. 自定义变量——在playbook中用户自定义…

springboot整合rabbitmq的不同工作模式理解

前提是已经安装并启动了rabbitmq&#xff0c;并且项目已经引入rabbitmq&#xff0c;完成了配置。 不同模式所需参数不同&#xff0c;生产者可以根据参数不同使用重载的convertAndSend方法。而消费者均是直接监听某个队列。 不同的交换机是实现不同工作模式的关键组件.每种交换…

权限及权限操作

1.命令行解释器 Linux将命令行解释器称为外壳程序shell 命令行解释器的作用就是将用户输入的指令转换为操作系统能够直接执行的指令。同时将操作系统的反馈转换为用户能看懂的反馈&#xff0c;解决了用户和操作系统沟通成本的问题。与此同时&#xff0c;命令行解释器还能够拦…

java项目之校园失物招领系统(springboot+vue+mysql)

风定落花生&#xff0c;歌声逐流水&#xff0c;大家好我是风歌&#xff0c;混迹在java圈的辛苦码农。今天要和大家聊的是一款基于springboot的校园失物招领系统。项目源码以及部署相关请联系风歌&#xff0c;文末附上联系信息 。 项目简介&#xff1a; 校园失物招领系统的主要…

Leetcode584_寻找用户推荐人

1.leetcode原题链接: . - 力扣&#xff08;LeetCode&#xff09; 2.题目描述 表: Customer ---------------------- | Column Name | Type | ---------------------- | id | int | | name | varchar | | referee_id | int | ------------------…

修改mysql locahost或者127.0.0.1弱密码问题

一、登录有问题的数据库 sudo mysql -uroot -pxxx -hkde-offline1 -P13306 二、查询user表 这将显示与 root 用户关联的主机、用户名以及加密后的认证字符串(密码)。请注意,authentication_string 列中存储的是经过哈希加密后的密码,而不是原始密码。 MySQL [mysql…

机器学习(五) ----------决策树算法

目录 1 核心思想 2 决策树算法主要步骤 3 决策树算法的分类 3.1 ID3算法&#xff08;Iterative Dichotomiser 3&#xff09;&#xff1a; 3.1.1 基本步骤 3.1.2 原理 信息增益 3.1.3 注意事项 3.2 C4.5算法&#xff1a; 3.2.1. 信息增益率 计算公式 3.2.2. 构建决策…

这个问题无人能解,菜鸟勿进

前言 2024-5-12 21:53:46 这是陈旧已久的草稿 2021-06-23 23:25:12 发布一下 一、问题 1.描述&#xff1a; 在我的世界中建个红石电路 2.需求&#xff1a; 五个灯A、B、C、D、E、F 五个开关a、b、c、d、e、f、总开关 3.要求&#xff1a; 总开关使所有灯关 开关a可以控制灯A…

鸿蒙内核源码分析(Shell编辑篇) | 两个任务,三个阶段

系列篇从内核视角用一句话概括shell的底层实现为&#xff1a;两个任务&#xff0c;三个阶段。其本质是独立进程&#xff0c;因而划到进程管理模块。每次创建shell进程都会再创建两个任务。 客户端任务(ShellEntry)&#xff1a; 负责接受来自终端(控制台)敲入的一个个字符&…