这几天在学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>
代码运行结果:
新建数据库之前
新建之后,可以看到插入的数据
运行结果
更多推荐
php脚本简单实现MySQL创建数据库,数据表,写入数据
发布评论