经验首页 前端设计 程序设计 Java相关 移动开发 数据库/运维 软件/图像 大数据/云计算 其他经验
当前位置:技术经验 » 程序设计 » PHP » 查看文章
WEB前端第五十六课——MySQL、前后台交互
来源:cnblogs  作者:后来喵  时间:2021/1/11 13:10:34  对本文有异议

1.可视化工具

  ① PHPmyadmin

    在Xampp环境下的访问地址:

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

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

  ② Navicat for MySQL

    需要单独下载安装。

  说明:

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

  ③ PHPmyadmin登录报错

  

     安装的“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格式返回

    代码示例:

  1. <?php
  2. $dataCon = mysqli_connect('localhost','root','','dbtest'); //① 建立数据库连接
  3. if($dataCon){ //② 判断是否连接成功
  4. mysqli_query($dataCon,'set names utf8');
  5. mysqli_query($dataCon,'set character_set_client=utf8');
  6. mysqli_query($dataCon,'set character_set_results=utf8'); //③ 设置编码格式
  7.  
  8. $sqlCode = '需要执行的SQL语句'; //④ 创建SQL语句
  9. $result = $dataCon -> query($sqlCode);      //⑤ 执行SQL语句,并获取结果
  10. print_r($result);
  11. if($result -> num_rows>0){ //⑥ 判断结果条数,使用“num_rows”属性,表示表数据的行数
  12. $resContent=[];
  13. for($i=0;$row=$result -> fetch_assoc();$i++){ //“fetch_assoc()”方法用于获取对象中的每一条数据
  14. $resContent[$i] = $row; //⑦ 拼凑结果
  15. }
  16. print_r($resContent);
  17. echo json_encode($resContent); //⑧ json格式返回
  18. }
  19. }else{
  20. echo '数据库连接失败!';
  21. }
  22. ?>

  ⑵ 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 条件";

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

  代码示例:

  1. <?php
  2. echo '<pre>';
  3. $dataCon = mysqli_connect('localhost','root','','dbtest');
  4. if($dataCon){
  5. mysqli_query($dataCon,'set names utf8');
  6. mysqli_query($dataCon,'set character_set_client=utf8');
  7. mysqli_query($dataCon,'set character_set_results=utf8');
  8.  
  9. $sqlCode1 = 'select * from namelist where 1'; //查询数据库表数据
  10. $sqlCode2 = "insert into namelist(姓名,sex,age) values('Kandy','girl',20)"; //新增数据库表数据,指定字段
  11. $sqlCode3 = "insert into namelist values('Joe','boy',21)"; //新增数据库表数据,全字段
  12. $sqlCode4 = "update namelist set 姓名='George',age=22 where 姓名='joe'"; //修改数据库表数据
  13. $sqlCode5 = "delete from namelist where 姓名='joney'"; //删除数据库表数据
  14.  
  15. $result = $dataCon -> query($sqlCode5);
  16. var_dump($result);
  17. }else{
  18. echo '数据库连接失败!';
  19. }
  20. ?>

 

4.用户登录注册案例

  1. <html lang="en">
  2. <head>
  3. <meta charset="UTF-8">
  4. <title>Test</title>
  5. <script src="JScodeFile/jquery-1.8.3.js"></script>
  6. </head>
  7. <body>
  8. <span>Name:</span><input type="text" class="userName"><br>
  9. <span>Code:</span><input type="password" class="userCode">
  10. <br>
  11. <br>
  12. <button>用户登录</button>
  13. <button>用户注册</button>
  14. <script>
  15. var $btns = $('button');
  16. $btns.eq(0).click(function () {
  17. $.ajax({
  18. type:'post',
  19. url:'20210106Login.php',
  20. data:{
  21. myName:$('.userName').val(),
  22. myCode:$('.userCode').val()
  23. },
  24. dataType:'json',
  25. success:function (fBack) {
  26. console.log(fBack);
  27. if (fBack.result==1){
  28. alert('登录成功!')
  29. }else if (fBack.result==0){
  30. alert('用户不存在!')
  31. }else if (fBack.result==2){
  32. alert('登录密码错误!')
  33. }else{
  34. alert('网络连接失败!')
  35. }
  36. },
  37. })
  38. });
  39. $btns.eq(1).click(function () {
  40. $.ajax({
  41. type:'post',
  42. url:'20210108Register.php',
  43. data:{
  44. newName:$('.userName').val(),
  45. newCode:$('.userCode').val()
  46. },
  47. dataType:'json',
  48. success:function (fBack) {
  49. console.log(fBack);
  50. if (fBack.result==4){
  51. alert('用户名已存在,请修改用户名!')
  52. }else if (fBack.result==5){
  53. alert('用户注册成功!您的用户名是:'+$('.userName').val()+'密码是:'+$('.userCode').val())
  54. }else{
  55. alert('网络连接失败!')
  56. }
  57. },
  58. })
  59. });
  60. </script>
  61. </body>
  62. </html>
  1. <?php
  2. // 接受前台发送的数据
  3. $userName = $_POST['myName'];
  4. $userCode = $_POST['myCode'];
  5. // 定义需要返回给前台的数据对象
  6. $fBack = array();
  7. // 连接数据库,并定义数据库对象
  8. $dataCon = mysqli_connect('localhost','root','','dbtest');
  9. // 设置数据库辅助信息(编码格式)
  10. mysqli_query($dataCon,'set names utf8');
  11. mysqli_query($dataCon,'set character_set_client=utf8');
  12. mysqli_query($dataCon,'set character_set_results=utf8');
  13.  
  14. // 用户登录逻辑
  15. if($dataCon){
  16. // 查询数据库表数据
  17. $sqlCode = 'select * from namelist where 1';
  18. // 执行SQL语句,定义SQL结果对象
  19. $result = $dataCon -> query($sqlCode);
  20. // 判断查询结果是否存在
  21. if($result->num_rows>0){
  22. // 数据结果存在,则将SQL结果对象解析为数组形式
  23. $resContent=[];
  24. for($i=0;$row=$result->fetch_assoc();$i++){
  25. $resContent[$i] = $row;
  26. }
  27. $fBack['resArr'] = $resContent;
  28. $fBack['resLen'] = count ($resContent);
  29. // 判断用户名是否存在,使用“count()”方法判断数组长度
  30. for($j=0;$j<count($resContent);$j++){
  31. if($resContent[$j]['name']==$userName){
  32. // 如果用户存在,则判断登录密码是否正确
  33. if($resContent[$j]['password']==$userCode){
  34. $fBack['result'] = 1;
  35. break;
  36. }else{
  37. $fBack['result'] = 2;
  38. }
  39. }else{
  40. $fBack['result'] = 0;
  41. }
  42. }
  43. }
  44. }else{
  45. $fBack['result'] = 3;
  46. }
  47. echo json_encode($fBack);
  48. ?>
  1. <?php
  2. $newName = $_POST['newName'];
  3. $newCode = $_POST['newCode'];
  4. // 连接数据库,并定义数据库对象
  5. $dataCon = mysqli_connect('localhost','root','','dbtest');
  6. // 设置数据库辅助信息(编码格式)
  7. mysqli_query($dataCon,'set names utf8');
  8. mysqli_query($dataCon,'set character_set_client=utf8');
  9. mysqli_query($dataCon,'set character_set_results=utf8');
  10. // 用户注册逻辑
  11. $fBack = array();
  12. if($dataCon){
  13. // 查询数据库表数据
  14. $sqlCode1 = 'select * from namelist where 1';
  15. // 执行SQL语句,定义SQL结果对象
  16. $result = $dataCon -> query($sqlCode1);
  17. // 判断查询结果是否存在
  18. if($result->num_rows>=0){
  19. // 数据结果存在,则将SQL结果对象解析为数组形式
  20. $resContent=[];
  21. for($i=0;$row=$result->fetch_assoc();$i++){
  22. $resContent[$i] = $row;
  23. }
  24. $fBack['resArr'] = $resContent;
  25. $fBack['resLen'] = count ($resContent);
  26. // 判断用户名是否存在,使用“count()”方法判断数组长度
  27. for($j=0;$j<count($resContent);$j++){
  28. if($resContent[$j]['name']==$newName){
  29. // 如果用户存在,则返回提示信息
  30. $fBack['result'] = 4;
  31. break;
  32. }else{
  33. $sqlCode2 = "insert into namelist(name,password) values($newName,$newCode)";
  34. $register = $dataCon->query($sqlCode2);
  35. $fBack['result'] = 5;
  36. $j = count($resContent)-1; //用于避免循环多次新增用户!
  37. $fBack['j'] = $j;
  38. }
  39. }
  40. }
  41. }else{
  42. $fBack['result'] = 3;
  43. }
  44. echo json_encode($fBack);
  45.  
  46. ?>

  

原文链接:http://www.cnblogs.com/husa/p/14243517.html

 友情链接:直通硅谷  点职佳  北美留学生论坛

本站QQ群:前端 618073944 | Java 606181507 | Python 626812652 | C/C++ 612253063 | 微信 634508462 | 苹果 692586424 | C#/.net 182808419 | PHP 305140648 | 运维 608723728

W3xue 的所有内容仅供测试,对任何法律问题及风险不承担任何责任。通过使用本站内容随之而来的风险与本站无关。
关于我们  |  意见建议  |  捐助我们  |  报错有奖  |  广告合作、友情链接(目前9元/月)请联系QQ:27243702 沸活量
皖ICP备17017327号-2 皖公网安备34020702000426号