当前位置:   article > 正文

【PHP】使用MySQLi方式连接数据库,增删改查_mysqli 增删改查

mysqli 增删改查

 

1.新建连接对象
  1)创建连接
  2)判断连接是否成功:通过错误码connect_errno判断
    如果connect_errno===0是没有问题,否则它的错误信息connect_error
  3)设置编码格式为UTF-8中文编码

 

  4)返回连接对象

 

  1. <?php
  2. function initMysqli(){
  3. //创建连接:参数1:主机地址 2:数据库用户名 3:用户密码 4:数据库
  4. $mysqli = new mysqli("localhost","root","","20170922");
  5. //判断连接是否成功
  6. if($mysqli->connect_errno){
  7. die($mysqli->connect_error);
  8. }
  9. //设置编码
  10. $mysqli->set_charset("utf8");
  11. return $mysqli;
  12. }
  13. ?>

 

 

2.增删改查

1.插入操作:

 1)通过上述封装的initMysqli();方法来新建一个连接对象

 2)通过对象下的query();方法执行sql语句,该函数会返回执行结果,失败返回false,成功返回查询对象信息

 3)通过执行结果判断是否成功,再调用相应的回调函数,即下述函数的参数2和参数3

   如果执行成功调用参数2的回调函数,如果执行失败会调用参数3的回调函数

 4)关闭连接

 

  1. <?php
  2. function insertData($sql,$success=null,$fail=null){
  3. $mysqli = initMysqli();
  4. $res = $mysqli->query($sql);//执行sql语句
  5. if($res){
  6. //参数2,3如果在调用时没有指定默认为null,执行会出错,所以要先判断是否指定
  7. if($success){
  8. //insert_id:新用户的id:一般id设置为自增,由数据库自动赋值
  9. //将执行后信息,保存到自定义的关联数组中
  10. $sInfo = array('id' =>$mysqli->insert_id,"msg"=>"注册成功","code"=>0);
  11. //将该关联数组作为回调函数的参数
  12. $success($sInfo);//调用参数2的回调函数
  13. }
  14. }else{
  15. if($fail){
  16. $fInfo = array('code' => $mysqli->errno, "errMsg"=>$mysqli->error,"sql"=>$sql);
  17. $fail($fInfo);
  18. }
  19. }
  20. $mysqli->close();
  21. }
  22. //调用方法演示:
  23. $username = "张三";
  24. //变量外要加引号
  25. $sql = "INSERT INTO user (username,password,gender) VALUES ('{$username}','000','男')";
  26. insertData($sql,function($response){
  27. print_r($response);
  28. },function($err){
  29. print_r($err);
  30. });
  31. ?>


2.修改更新操作:
 affected_rows:受影响的行数

 在更新操作成功后,要判断受影响的行数,因为如果受影响的行数是0,那么就相当于没有修改

 

  1. <?php
  2. function updateData($sql,$success=null,$fail=null){
  3. $mysqli = initMysqli();
  4. $res = $mysqli->query($sql);
  5. if($res){
  6. if($success){
  7. //两种情况:1. 确实更新 2:本次更改和之前没区别
  8. $sInfo = array('affected_rows' =>$mysqli->affected_rows,"msg"=>"更新成功","code"=>0);
  9. $success($sInfo);
  10. }
  11. }else{
  12. if($fail){
  13. $fInfo = array('code' => $mysqli->errno, "errMsg"=>$mysqli->error,"sql"=>$sql);
  14. $fail($fInfo);
  15. }
  16. }
  17. $mysqli->close();
  18. }
  19. //调用方法演示
  20. $sql = "UPDATE user SET gender = '女' WHERE id > 20";
  21. updateData($sql,function($res){
  22. print_r($res);
  23. },function($err){
  24. print_r($err);
  25. });
  26. ?>


3.删除操作:删除也需要判断是否真的更新

 

  1. <?php
  2. function deleteData($sql,$success=null,$fail=null){
  3. $mysqli = initMysqli();
  4. $res = $mysqli->query($sql);
  5. if($res){
  6. if($success){
  7. $sInfo = array('affected_rows' =>$mysqli->affected_rows,"msg"=>"删除成功","code"=>0);
  8. $success($sInfo);
  9. }
  10. }else{
  11. if($fail){
  12. $fInfo = array('code' => $mysqli->errno, "errMsg"=>$mysqli->error,"sql"=>$sql);
  13. $fail($fInfo);
  14. }
  15. }
  16. $mysqli->close();
  17. }
  18. ?>


4.查询操作:

 

 num_rows:查询到具体的个数

 $res->fetch_assoc():返回值为当前行,是关联数组形式,每查询到一行句柄就跟着移动,下次在查询时,查到的就是下面的一行,直到查询结束

 

  1. <?php
  2. function selectData($sql,$success=null,$fail=null){
  3. $mysqli = initMysqli();
  4. $res = $mysqli->query($sql);
  5. if($res && $res->num_rows){
  6. $res->data_seek(0);//将句柄移动到开始位置
  7. //只要查询到的当前行不为空,就将数据存放在data数组中
  8. while ($row = $res->fetch_assoc()){
  9. $data[]=$row;
  10. }
  11. if($success){
  12. $sInfo = array('data' =>$data,"msg"=>"查询成功","code"=>0);
  13. $success($sInfo);
  14. }
  15. }else{
  16. if($fail){
  17. $fInfo = array('code' => $mysqli->errno, "errMsg"=>$mysqli->error,"sql"=>$sql);
  18. $fail($fInfo);
  19. }
  20. }
  21. $mysqli->close();
  22. }
  23. ?>

 

 

 

 

 


 

本文内容由网友自发贡献,转载请注明出处:【wpsshop博客】
推荐阅读
相关标签
  

闽ICP备14008679号