php脚本简单实现MySQL创建数据库,数据表,写入数据

前后端 专栏收录该内容
27 篇文章 1 订阅

这几天在学php,基本都是看菜鸟教程,总结下php和mysql配合的笔记

MySQL基本结构

在这里插入图片描述

  • 一个MySQL的服务,也就是层级关系的最顶,要通过IP来查询,默认的端口号是3306,可以在配置里面修改的
  • 每个MySQL下面,可以有很多个数据库,这些数据库需要通过【数据库名字】来找到
  • 每个数据库下面可以有很多个数据表,对某个数据库的某个数据表的操作,需要在相应的指令内附带指定数据表的名字
  • 一个数据表可以有很多个数据字段,也就是表头,代表着有多少种属性,比如students数据表就需要有【姓名name】和【学号number】属性

例:插入一条数据比如有一个数据表名字是 students,那么对应的指令应该附带相应的表名字

INSERT INTO `students`(`number`, `name`) VALUES ('12345678','马自立')

xampp上运行sql

运行apache的同时打开MySQL
在这里插入图片描述在浏览器登录http://localhost:8081/phpmyadmin/,即可进入sql的图形管理界面,相当方便啊(apache改过端口,所以是8081)
在这里插入图片描述

php脚本对MySQL的操作

连接到mysql

通过mysqli方法创建一个根据ip地址的sql的连接

// 根据ip获得sql的连接
$servername = "localhost";
$username = "root";
$password = "";
$con = new mysqli($servername, $username, $password);
if ($con->connect_error) {
    echo "连接失败: " . $con->connect_error . "<br>";
} else {
    echo "连接成功<br>";
}

sql操作语句

刚刚新建了sql 连接的对象,名叫 con

使用con对象的->query()方法,可以提交一条sql的操作语句,但是这个操作是建立在当前的con对象的层级的,如果con对象只是连接到了一个sql,而没有选择对应的数据库,或者是连接到对应的数据库,没有选择对应的表,那么可能会出现问题。。

新建数据库

对应的语句是CREATE DATABASE db1,这和你在下图中的界面直接输入并执行sql命令无异
在这里插入图片描述

根据ip取得与sql的连接,然后在当前sql下创建一个名为db1的数据库,值得注意的是记得关闭连接是一个不坏的习惯

// 根据ip获得sql的连接
$servername = "localhost";
$username = "root";
$password = "";
$con = new mysqli($servername, $username, $password);
if ($con->connect_error) {
    echo "连接失败: " . $con->connect_error . "<br>";
} else {
    echo "连接成功<br>";
}
// 创建数据库 db1
$sql = "CREATE DATABASE db1";
if($con->query($sql) == true) {
    echo "数据库 db1 创建成功!<br>";
} else {
    echo "创建失败!<br>";
}
$con->close();

创建数据表

刚刚创建了名为db1的数据库,现在要连接到这个数据库(连接更下一层),所以这次通过 new mysqli()函数获取,要多加一个【数据库名】的参数

这次我们为db1数据库创建一个名叫table1的数据表

值得注意的是创建数据表需要指定一个primary key

// 此时需要连接到数据库db1下,第四个参数是数据库名
$servername = "localhost";
$username = "root";
$password = "";
$dbname = "db1";
$con = new mysqli($servername, $username, $password, $dbname);
// 创建数据表 table1,一定要指定一个 primary key
$sql = "CREATE TABLE table1 (
    number INT(32) PRIMARY KEY,
    name VARCHAR(32)
)";
if ($con->query($sql) == true) {
    echo "数据表 table1 创建成功!<br>";
} else {
    echo "创建失败!<br>";
}
$con->close();  

为数据表添加数据

因为是在同一数据库(db1)下创建表,那么添加数据的时候,参数带上指定的数据表名字(table1),即可为指定的数据表添加数据

$servername = "localhost";
$username = "root";
$password = "";
$dbname = "db1";
$con = new mysqli($servername, $username, $password, $dbname);
$sql = "INSERT INTO table1 (number, name) VALUES ('114515', 'XiaoXinMaZiLi')";
if($con->query($sql) == true) {
    echo "数据插入成功!<br>";
} else {
    echo "插入失败!";
}
$con->close();  

完整代码

<!DOCTYPE html>
<html lang="zh-CN">
<!-- http://localhost:8081/page3/ -->
<head>
	<title>php sql测试</title>
</head>
<body>
	<h2>sql测试:创建与写入</h2>
    <?php
        // 根据ip获得sql的连接
        $servername = "localhost";
        $username = "root";
        $password = "";
        $con = new mysqli($servername, $username, $password);
        if ($con->connect_error) {
            echo "连接失败: " . $con->connect_error . "<br>";
        } else {
            echo "连接成功<br>";
        }
        // 创建数据库 db1
        $sql = "CREATE DATABASE db1";
        if($con->query($sql) == true) {
            echo "数据库 db1 创建成功!<br>";
        } else {
            echo "创建失败!<br>";
        }
        $con->close();

        // 此时需要连接到数据库db1下,第四个参数是数据库名
        $dbname = "db1";
        $con = new mysqli($servername, $username, $password, $dbname);
        // 创建数据表 table1,一定要指定一个 primary key
        $sql = "CREATE TABLE table1 (
            number INT(32) PRIMARY KEY,
            name VARCHAR(32)
        )";
        if ($con->query($sql) == true) {
            echo "数据表 table1 创建成功!<br>";
        } else {
            echo "创建失败!<br>";
        }

        // 因为刚刚已经连接到db1下,我们仍可以复用这个con对象,这里添加数据字段
        $sql = "INSERT INTO table1 (number, name) VALUES ('114515', 'XiaoXinMaZiLi')";
        if($con->query($sql) == true) {
            echo "数据插入成功!<br>";
        } else {
            echo "插入失败!";
        }
        $con->close(); 
    ?>
</body>
</html>

代码运行结果:

新建数据库之前
在这里插入图片描述
新建之后,可以看到插入的数据
在这里插入图片描述
运行结果
在这里插入图片描述

  • 1
    点赞
  • 0
    评论
  • 24
    收藏
  • 一键三连
    一键三连
  • 扫一扫,分享海报

©️2021 CSDN 皮肤主题: 博客之星2020 设计师:CY__ 返回首页
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、C币套餐、付费专栏及课程。

余额充值