mysql返回上一层_WEB前端第五十六课——MySQL、前后台交互

1.可视化工具

①?PHPmyadmin

在Xampp环境下的访问地址:

http://127.0.0.1(:端口号)/phpmyadmin  或者

http://localhost(:端口号)/phpmyadmin  端口号为“80”时可不加端口号。

②?Navicat?for?MySQL

需要单独下载安装。

说明:

这两个工具都仅是对数据库进行操作和管理的工具,并不是数据库。

③?PHPmyadmin登录报错

444c153924aad6a99fca80db3a93885a.png

??   安装的“XAMPP?Control?Panel?v3.2.4”默认的?MySQL?Port是3396,

在“Config->my.ini”配置文件中将所有的“3396”端口号替换为“3306”后,重启MySQL,打开phpmyadmin连接成功!

2.PHP中数据库操作

①?PHP创建数据库(连接)

语法:(Object)mysqli_connect("域名","DB账号","DB密码","DB库名");

示例:$DBcnt = mysqli_connect('localhost','admin','111','DBtest');

②?向DB中插入数据时包含中文出现乱码的解决方案

语法:mysqli_query($DBcnt,'set names utf8');

说明:设置成功会返回1,根据实际情况并不一定必须保存返回结果。

③?设置?client端和?server端保持字符编码一致

语法:mysqli_query($DBcnt,"set character_set_client=utf8");

mysqli_query($DBcnt,"set character_set_results=utf8");

④?执行SQL语句

语法:$结果 = $DB连接->query(SQL语句);

示例:var_dump($result=$DBcnt->query($sql));

3.PHP操作SQL语句

⑴ PHP中使用SQL语句的基础模板(适用于初学理解)

①?建立数据库连接

②?判断是否连接成功

③?设置编码

④?创建SQL语句

⑤?执行SQL语句,并获取结果

⑥?判断结果条数

⑦?拼凑结果

⑧?json格式返回

代码示例:

< php

$dataCon = mysqli_connect('localhost','root','','dbtest'); //① 建立数据库连接

if($dataCon){ //② 判断是否连接成功

mysqli_query($dataCon,'set names utf8');

mysqli_query($dataCon,'set character_set_client=utf8');

mysqli_query($dataCon,'set character_set_results=utf8'); //③ 设置编码格式

$sqlCode = '需要执行的SQL语句'; //④ 创建SQL语句

$result = $dataCon -> query($sqlCode);      //⑤ 执行SQL语句,并获取结果

print_r($result);

if($result -> num_rows>0){ //⑥ 判断结果条数,使用“num_rows”属性,表示表数据的行数

$resContent=[];

for($i=0;$row=$result -> fetch_assoc();$i++){ //“fetch_assoc()”方法用于获取对象中的每一条数据

$resContent[$i] = $row; //⑦ 拼凑结果

}

print_r($resContent);

echo json_encode($resContent); //⑧ json格式返回

}

}else{

echo '数据库连接失败!';

}

>

⑵?SQL查询语句

在数据库的指定表内根据条件查询指定内容

语法:$sql = "select [字段内容] from [表名] where [查询条件]";

说明:

字段内容可以使用“ * ”代替,表示所有字段信息;也可以指定具体字段,多个字段用“,”隔开。

插叙条件可以直接写“1”,表示无条件;也可以写具体条件,多个条件使用“and”或“or”连接。

⑶?SQL插入语句

语法:$sql = "insert into [表名](field1,field2,...) values('value1,value2,...)";

$sql = "insert into [表名] values('value1,value2,...)";  //不定义字段条件时表示添加所有字段!

⑷?SQL修改语句

语法:$sql = "update [表名]?set field1='value1,... where id=$id...";

注意:where后面的条件可以和修改的内容相同。

⑸?SQL删除语句

语法:$sql = "delete?from?[表名]?where?条件";

说明:根据指定的条件删除对应的数据。

代码示例:

< php

echo '

';

$dataCon = mysqli_connect('localhost','root','','dbtest');

if($dataCon){

mysqli_query($dataCon,'set names utf8');

mysqli_query($dataCon,'set character_set_client=utf8');

mysqli_query($dataCon,'set character_set_results=utf8');

$sqlCode1 = 'select * from namelist where 1'; //查询数据库表数据

$sqlCode2 = "insert into namelist(姓名,sex,age) values('Kandy','girl',20)"; //新增数据库表数据,指定字段

$sqlCode3 = "insert into namelist values('Joe','boy',21)"; //新增数据库表数据,全字段

$sqlCode4 = "update namelist set 姓名='George',age=22 where 姓名='joe'"; //修改数据库表数据

$sqlCode5 = "delete from namelist where 姓名='joney'"; //删除数据库表数据

$result = $dataCon -> query($sqlCode5);

var_dump($result);

}else{

echo '数据库连接失败!';

}

>

?

4.用户登录注册案例

Test

Name:

Code:

用户登录

用户注册

var $btns = $('button');

$btns.eq(0).click(function () {

$.ajax({

type:'post',

url:'20210106Login.php',

data:{

myName:$('.userName').val(),

myCode:$('.userCode').val()

},

dataType:'json',

success:function (fBack) {

console.log(fBack);

if (fBack.result==1){

alert('登录成功!')

}else if (fBack.result==0){

alert('用户不存在!')

}else if (fBack.result==2){

alert('登录密码错误!')

}else{

alert('网络连接失败!')

}

},

})

});

$btns.eq(1).click(function () {

$.ajax({

type:'post',

url:'20210108Register.php',

data:{

newName:$('.userName').val(),

newCode:$('.userCode').val()

},

dataType:'json',

success:function (fBack) {

console.log(fBack);

if (fBack.result==4){

alert('用户名已存在,请修改用户名!')

}else if (fBack.result==5){

alert('用户注册成功!您的用户名是:'+$('.userName').val()+'密码是:'+$('.userCode').val())

}else{

alert('网络连接失败!')

}

},

})

});

< php

// 接受前台发送的数据

$userName = $_POST['myName'];

$userCode = $_POST['myCode'];

// 定义需要返回给前台的数据对象

$fBack = array();

// 连接数据库,并定义数据库对象

$dataCon = mysqli_connect('localhost','root','','dbtest');

// 设置数据库辅助信息(编码格式)

mysqli_query($dataCon,'set names utf8');

mysqli_query($dataCon,'set character_set_client=utf8');

mysqli_query($dataCon,'set character_set_results=utf8');

// 用户登录逻辑

if($dataCon){

// 查询数据库表数据

$sqlCode = 'select * from namelist where 1';

// 执行SQL语句,定义SQL结果对象

$result = $dataCon -> query($sqlCode);

// 判断查询结果是否存在

if($result->num_rows>0){

// 数据结果存在,则将SQL结果对象解析为数组形式

$resContent=[];

for($i=0;$row=$result->fetch_assoc();$i++){

$resContent[$i] = $row;

}

$fBack['resArr'] = $resContent;

$fBack['resLen'] = count ($resContent);

// 判断用户名是否存在,使用“count()”方法判断数组长度

for($j=0;$j

if($resContent[$j]['name']==$userName){

// 如果用户存在,则判断登录密码是否正确

if($resContent[$j]['password']==$userCode){

$fBack['result'] = 1;

break;

}else{

$fBack['result'] = 2;

}

}else{

$fBack['result'] = 0;

}

}

}

}else{

$fBack['result'] = 3;

}

echo json_encode($fBack);

>

< php

$newName = $_POST['newName'];

$newCode = $_POST['newCode'];

// 连接数据库,并定义数据库对象

$dataCon = mysqli_connect('localhost','root','','dbtest');

// 设置数据库辅助信息(编码格式)

mysqli_query($dataCon,'set names utf8');

mysqli_query($dataCon,'set character_set_client=utf8');

mysqli_query($dataCon,'set character_set_results=utf8');

// 用户注册逻辑

$fBack = array();

if($dataCon){

// 查询数据库表数据

$sqlCode1 = 'select * from namelist where 1';

// 执行SQL语句,定义SQL结果对象

$result = $dataCon -> query($sqlCode1);

// 判断查询结果是否存在

if($result->num_rows>=0){

// 数据结果存在,则将SQL结果对象解析为数组形式

$resContent=[];

for($i=0;$row=$result->fetch_assoc();$i++){

$resContent[$i] = $row;

}

$fBack['resArr'] = $resContent;

$fBack['resLen'] = count ($resContent);

// 判断用户名是否存在,使用“count()”方法判断数组长度

for($j=0;$j

if($resContent[$j]['name']==$newName){

// 如果用户存在,则返回提示信息

$fBack['result'] = 4;

break;

}else{

$sqlCode2 = "insert into namelist(name,password) values($newName,$newCode)";

$register = $dataCon->query($sqlCode2);

$fBack['result'] = 5;

$j = count($resContent)-1; //用于避免循环多次新增用户!

$fBack['j'] = $j;

}

}

}

}else{

$fBack['result'] = 3;

}

echo json_encode($fBack);

>

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值