帝国论坛帝国网站管理系统交流区帝国CMS使用交流[原创]根据键值构造插入语句key和value更新值 【本版专题贴子】  
主题:[原创]根据键值构造插入语句key和value更新值 [加入收藏夹]   

cighsen02
用户头衔:进士

精华贴   :0
发贴数   :884
经验值   :3407
注册时间:2009-09-29
信息 搜索 好友 发送悄悄话 精益求精-帝国网站管理系统7.5正式版开源发布】   [第 1 楼]
[原创]根据键值构造插入语句key和value更新值
/**
* 构造插入语句
* 根据键值,例 ['good' => 'first', 'level' => 2]
*/
function parseInsert(array $data): array
{               
        $key         = '`'. implode('`, `', array_keys($data)) . '`';
       
        //给字符串加上单引号
        $value  = array_map(function($val) {
               
                return is_numeric($val) ? $val : "'" . addslashes(RepPostStr($val)) . "'";
               
        }, array_values($data));
       
        return ['key' => $key, 'value' => implode(', ', $value)];
}


例子:
生成插入sql
INSERT INTO phone_enewspayrecord (`userid`, `username`, `orderid`, `money`, `posttime`, `paybz`, `type`, `payip`) VALUES (2, 'xiayu', 20221647170963, 100, 1647170963, '下载', 1, '192.168.1.1')

$add = [
        'userid' => 2,
        'username' => 'xiayu',
        'orderid' => 2022 . time(),
        'money' => 100,
        'posttime' => time(),
        'paybz' => '下载',
        'type' => 1,
        'payip' => '192.168.1.1'
];

执行
parseInsert($add);

结果
Array
(
    [key] => `userid`, `username`, `orderid`, `money`, `posttime`, `paybz`, `type`, `payip`
    [value] => 2, 'xiayu', 20221647171085, 100, 1647171085, '下载', 1, '192.168.1.1'
)


[该贴被修改 2 次,最后修改时间 2022-04-07 16:38:21 ]


要上就上安心站长 www.axzz.cn q:365182575
2022-03-12 15:44:08 已设置保密 顶部 回复 引用 报告 编辑 删除

csdn2
用户头衔:探花

精华贴   :0
发贴数   :4560
经验值   :13362
注册时间:2013-11-21
信息 搜索 好友 发送悄悄话 免费开源-EBMA系统:更安全的MYSQL管理和备份系统】   [第 2 楼]

支持下




2022-03-12 17:00:51 已设置保密 顶部 回复 引用 报告 编辑 删除

花心
用户头衔:探花

精华贴   :0
发贴数   :4374
经验值   :13671
注册时间:2008-11-01
信息 搜索 好友 发送悄悄话 精益求精-帝国网站管理系统7.5正式版开源发布】   [第 3 楼]

这是什么用处?




2022-03-13 08:40:56 已设置保密 顶部 回复 引用 报告 编辑 删除

cighsen02
用户头衔:进士

精华贴   :0
发贴数   :884
经验值   :3407
注册时间:2009-09-29
信息 搜索 好友 发送悄悄话 免费开源-EBMA系统:更安全的MYSQL管理和备份系统】   [第 4 楼]

//解构       
['key' => $key, 'value' => $value] = parseInsert($add);
               
$sql = sprintf('INSERT INTO %s (%s) VALUES (%s)', 'phone_enewspayrecord', $key, $value);

[该贴被修改 1 次,最后修改时间 2022-03-13 19:34:45 ]


要上就上安心站长 www.axzz.cn q:365182575
2022-03-13 19:34:26 已设置保密 顶部 回复 引用 报告 编辑 删除

lycool
用户头衔:探花

精华贴   :0
发贴数   :4206
经验值   :10776
注册时间:2008-02-15
信息 搜索 好友 发送悄悄话 精益求精-帝国网站管理系统7.5正式版开源发布】   [第 5 楼]

不错,数组里插入行




2022-03-14 08:01:08 已设置保密 顶部 回复 引用 报告 编辑 删除

csdn2
用户头衔:探花

精华贴   :0
发贴数   :4560
经验值   :13362
注册时间:2013-11-21
信息 搜索 好友 发送悄悄话 免费开源-EBMA系统:更安全的MYSQL管理和备份系统】   [第 6 楼]

解构




2022-03-14 14:20:57 已设置保密 顶部 回复 引用 报告 编辑 删除

cnnb
用户头衔:探花

精华贴   :0
发贴数   :5758
经验值   :16450
注册时间:2008-10-14
信息 搜索 好友 发送悄悄话 精益求精-帝国网站管理系统7.5正式版开源发布】   [第 7 楼]

学习




2022-03-15 08:08:25 已设置保密 顶部 回复 引用 报告 编辑 删除

html高手
用户头衔:探花

精华贴   :0
发贴数   :9114
经验值   :23336
注册时间:2008-02-23
信息 搜索 好友 发送悄悄话 免费开源-EBMA系统:更安全的MYSQL管理和备份系统】   [第 8 楼]

不错,代码简化




2022-03-16 07:58:51 已设置保密 顶部 回复 引用 报告 编辑 删除

pingpong
用户头衔:探花

精华贴   :0
发贴数   :9335
经验值   :24298
注册时间:2008-11-02
信息 搜索 好友 发送悄悄话 精益求精-帝国网站管理系统7.5正式版开源发布】   [第 9 楼]

支持一下




2022-03-18 07:50:35 已设置保密 顶部 回复 引用 报告 编辑 删除

快速回复
内容

表情
使用EBB代码 使用smile代码 显示签名 自动分析url 自动分析img
     【进入高级模式】   (按 Ctrl+Enter 直接提交)
    顶部  加入收藏夹
关于帝国 | 广告服务 | 联系我们 | 法律声明 | 隐私条款 | 许可协议
Powered by: EBB Version 2.2.1