目录
1.MySQL数据库简介
2.MySQL数据库的可视化工具
3.可视化工具的【增删改查】操作
4.php连接数据库与基本操作配置
5.php操作数据库【增删改查】操作
6.html与php+MySQL完成前后端交互
1.MySQL数据库简介
MySQL是一种开放源代码的关系型数据库管理系统(RDBMS),使用最常用的数据库管理语言--结构化查询语言(SQL)进行数据库管理。
MySQL是开放源代码的,因此任何人都可以在General Public License的许可下下载并根据个性化的需要对其进行修改。
MySQL因为其速度、可靠性和适应性而备受关注。大多数人都认为在不需要事务化处理的情况下,MySQL是管理内容最好的选择。
时至今日 MySQL 和 php 的结合绝对是完美.很多大型的网站也用到Mysql数据库.mysql的发展前景是非常光明的!
2.MySQL数据库的可视化工具
(1)phpmyadmin
(2)Navicat for MySQL
3.可视化工具【增删改查】操作
(1)phpmyadmin:
http://127.0.0.1/phpmyadmin
或者
http://localhost/phpmyadmin
(2)navicat for mysql:
下载、安装、破解、连接
ps:需要说明一点就是无论是phpmyadmin也好还是navivat for mysql也好,两者都仅是一个对于数据库操作和管理的工具,他们并不是数据库本身。
练习:
(1)通过phpmyadmin工具,新建一个数据库名为libraryDB
a.为这个数据库添加一张表,表中有5个字段,分别为
【bookId】【bookName】【bookAuthor】【bookPrice】【bookNum】
b.查询表中所有条目
c.添加两个条目,并再次查询所有条目
d.修改其中Id是2的条目,价格改成300,数量改成1000。
修改完毕后查询id是2的条目
e.删除id是1的条目
(2)通过navicat for mysql工具,重复上述操作。
注意:两个工具操作的实际上是同一个数据库
4.php连接数据库与基本操作配置
(1)php创建数据库【连接】
语法:Object mysqli_connect("域名","DB账号","DB密码","DB库名")
例子:$con = mysqli_connect('localhost','root','','frankdb');
(2)向DB中插入数据时包含中文出现乱码的解决方案
语法:mysqli_query($con,"set names utf8");
说明:设置成功会返回1,根据实际情况并不一定必须保存返回结果。
(3)设置client端和server端保持字符编码一致
语法:mysqli_query($con,"set character_set_client=utf8");
mysqli_query($con,"set character_set_results=utf8");
(4)执行sql语句
语法:$结果 = $DB连接->query(sql语句);
例子:var_dump($result = $con->query($sql));
5.php操作数据库【增删改查】操作
操作数据库的基本步骤大多相同,只不过是sql语句结构的区别。不同的sql语句能够完成不同的功能,因此学习如何操作数据库实际上就是在学习如何编写sql语句。
(1)使用sql语句基本【模板】
(2)sql查询语句
(3)sql插入语句
(4)sql修改语句
(5)sql删除语句
1)使用sql语句基本【模板】
提供模板并不是说以后我们操作数据库就都采用这种结构,而是对于初学者而言我们在没有接触过数据库的情况下,这样的模板能够帮助我们快速的上手从php中操作mysql数据库。
a.建立连接
b.判断是否连接
c.设置编码
d.创建sql语句
e.执行sql语句,并获得结果
f.判断结果条数
g.拼凑结果
h.json化返回
$con = mysqli_connect('localhost','root','','frankdb');a:建立连接
if($con){b:判断是否链接
echo "<pre>";
mysqli_query($con,'set names utf8');
mysqli_query($con,'set character_set_client=utf8');c.设置编码
mysqli_query($con,'set character_set_results=utf8');
$sql = 'select * from friendslist where 1';d:创建sql语句
$result = $con->query($sql);e:执行sql语句,并获得结果
if($result->num_rows>0){f:判断结果条数
for($i=0,$jsonInfo=[]; $row=$result->fetch_assoc();$i++){
$jsonInfo[] = $row;g:拼凑结果
}
echo json_encode($jsonInfo);h:json化返回
}
}
2)Sql查询语句
描述:表示去数据库中指定的表内根据条件查询指定的内容
语法:$sql = "select 【信息】 from 【哪张表】 where 【查询条件】";
说明:
a.【信息】有两种写法:
一是写*星号,代表查询所有字段对应的信息
$sql = "select * from friendslist where 1";
二是写指定字段,代表查询某个字段对应信息,如果有多个则用逗号隔开
$sql = "select friendsName from friendslist where 1";
b.【哪张表】就是直接写出对应表的名字即可
c.【查询条件】有两种写法:
一是无条件查询,那么直接写1即可。
$sql = "select * from friendslist where 1";
二是有条件查询,在后面写出额外的查询条件。如果有多个用and或or连接
$sql = "select * from friendslist where friendsSex='female'";
$sql = "select * from friendslist where friendsSex='female' and friendsAge=21";
$sql = "select * from friendslist where friendsSex='male' or friendsAge=18";
3)sql插入语句
语法:$sql = "insert into 表名(字段1,字段2,...) values ('值1','值2',...)";
$sql = "insert into 表名 values(值1,值2,...)";
4)sql修改语句
语法:$sql = “update 表名 set 字段1='新值1',… where id=$id",…;
注意:修改的关键词是update,而不是updata!!
注意:where后面的条件可以和修改的内容相同。
5)sql删除语句
语法:$sql = 'delete from 表名 where 条件';
说明:根据指明的条件删除对应数据
6.html与php+mysql完成前后端交互
前端关键部分代码:【ajax请求】
$.ajax({
type:'post',
url:'add.php',
dataType:"json",
data:{
friendsName:$('.fname').val(),
…
},
success:function(data){console.log(data);},
error:function(error){console.log(error);}
});
后台部分代码:【php接受ajax request,并通过echo给出response】
$con = mysqli_connect('localhost','root','','frankdb');
$success = array("code" => "success");
$error = array("code" => "error");
if($con){
mysqli_query($con,'set names utf8');
mysqli_query($con,'set character_set_client=utf8');
mysqli_query($con,'set character_set_results=utf8');
$fname = $_POST['friendsName'];
…
$result = $con->query("insert into friendslist values($fname,…)");
if($result){
echo json_encode($success);
}
}else{
echo json_encode($error);
}
7)登录案例
对于登录案例的业务逻辑各位应当都不陌生,但具体的实现过程需要我们细化到语句才可以。在本例中我们并不过多的考虑在实现登录过程中前端语法部分对用户的要求,而把重心暂时放在如何实现WEB请求响应上面。而我们已经了解并掌握的部分有:
(1)将用户输入信息发送给后台--------ajax请求实现
(2)后台接收用户发送的内容--------php中的$_POST或$_GET对象获取
(3)在数据库中搜索目标条目--------sql查询语句
(4)返回前端response--------echo语句返回json_encode内容
因此我们亟待解决的问题就只剩下了一个:
用户输入并发送给后台的数据,应如何判断其是合法账户?
答案呼之欲出:
数据库中不存在和用户输入的信息相匹配的条目,则该账户不存在,即登录失败。而如果存在则登录成功。