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传进来的pwd
if($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)