PHP&MySQL基础(一):创建数据库并通过PHP进行连接_长风沛雨的博客-CSDN博客
PHP&MySQL基础(二):通过PHP对MySQL进行增、删、改、查_长风沛雨的博客-CSDN博客
PHP&MySQL基础(三):处理查询SQL返回的结果集_长风沛雨的博客-CSDN博客
目录
一、搭建HTML表单结构
二、封装一个SQL执行方法Conn
三、实现用户登录功能
四、测试功能
MySQL和PHP之间可以进行增删改查的操作,也可以把查询返回的结果给转换成对象或者数组来进行取值
同时,也可以通过HTML的表单结构和PHP的查询语法来进行一个登录的校验
一、搭建HTML表单结构
<form action="" method="post"><div><label for="">账号:</label><input type="text" name="userName"></div><div><label for="">密码:</label><input type="password" name="pwd"></div><input type="submit" value="登录"><a href="sql实现注册.php">注册</a></form>
二、封装一个SQL执行方法Conn
封装一个function函数,把后续的sql语句当作实参进行传递
在该函数中,连接数据库,处理数据库连接异常,统一字符集编码
需要注意的是:在else分支中执行的query()方法,接受方法返回值的$res变量需要提高一个作用域,在else内部第一次声明的话,在外部返回就不写了
//封装数据库请求的方法:接受一个sql语句,返回sql语句的执行结果function Conn($sql){$res;$link = new mysqli('localhost','root','123456','db_test','3306');if($link->connect_error){ # 判断如果link对象里面的异常不为空switch($link->connect_error){case 1045 : echo " 访问被拒绝,可能用户名或者密码错误";break;case 1049 : echo " 数据库名称错误";break;default:break;}}else{$link->query("SET NAMES utf8"); # 使用连接对象自带的query方法执行sql语句,该sql是用来设置字符集编码$res = $link->query($sql); //这里的res是在内部的,要提高声明范围}mysqli_close($link);return $res;}
三、实现用户登录功能
//3、实现功能:用户登录if($_POST){ //3.1 判断post有没有数据//3.2 获取表单传递过来的数据$userName = $_POST['userName'];$pwd = $_POST['pwd'];//3.3 判断用户名和密码是否为空if($userName && $pwd){//3.5 在有账号数据的前提下,去编写sql语句(先查询指定的姓名)$selectSql = "SELECT * FROM tb_user WHERE userName='$userName'";//3.6 用Conn方法去读取该sql语句$res = Conn($selectSql);//3.7 去判断这个结果集有没有读取到对应的数据if($res->num_rows){ # num_rows是读取到记录的条数,如果为0就是没有了//3.9 去判断密码(读取结果集)$info = mysqli_fetch_object($res);//4.0 判断$info中对应的pwd是不是等于post传进来的pwdif($info->pwd == $pwd){echo "<script>window.alert('登录成功')</script>";}else{echo "<script>window.alert('密码不匹配')</script>";}}else{ //3.8 如果没有查询到条数,就是账号不存在echo "<script>window.alert('账号不存在')</script>";}}else{ // 3.4 否则进行提示echo "<script>window.alert('账号和密码不可为空')</script>";}}
四、测试功能
登录这个账号
这个登录案例差不多这样子
但是还可以在补充:用户登录成功后跳转到指定页面,同时保存用户登录的数据(会话存储session)