SQL封装生成更新update语句完全代码带说明注释

[复制链接]
查看1916 | 回复0 | 2020-11-24 09:46 | 显示全部楼层 |阅读模式
SQL封装生成更新update语句完全代码带说明注释
  1. <?php
  2. $table='products';        //表名
  3. $data['proname']='钢笔';
  4. $data['proprice']=120;
  5. $data['proID']='111';
  6. //获取主键
  7. function getPrimaryKey($table) {
  8.         //连接数据库
  9.         $link=mysqli_connect('localhost','root','root','data');
  10.         mysqli_set_charset($link,'utf8');
  11.         //查看表结构
  12.         $rs=mysqli_query($link,"desc `{$table}`");
  13.         //循环判断主键
  14.         while($rows=mysqli_fetch_assoc($rs)){
  15.                 if($rows['Key']=='PRI')
  16.                         return $rows['Field'];
  17.         }
  18. }
  19. //第一步:获取非主键
  20. $keys=array_keys($data);        //获取所有键
  21. $pk=getPrimaryKey($table);        //获取主键
  22. $index=array_search($pk,$keys);        //返回主键在数组中的下标
  23. unset($keys[$index]);                //删除主键
  24. //第二步:拼接`键`='值'的形式
  25. $keys=array_map(function($key) use ($data){
  26.         return "`{$key}`='{$data[$key]}'";
  27. },$keys);
  28. $keys=implode(',',$keys);
  29. //第三步:拼接SQL语句
  30. echo $sql="update `{$table}` set $keys where $pk='{$data[$pk]}'";
复制代码

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

UID
1
贡献
387
丢币
38902
主题
4607
回帖
116
注册时间
2018-9-25
最后登录
2024-4-26