PHP实现单条sql执行多个数据的insert语句方法
废话不多说 直接上代码
<?php /** * Created by PhpStorm. * User: Administrator * Date: 2018/4/21 * Time: 10:41 */ header("Content-type: text/html; charset=utf-8"); $mysqli = new mysqli('localhost','root','root','sql'); $mysqli->query('set names utf8'); //批量插入演示 $data[] = array('aa',10); $data[] = array('bb',20); $data[] = array('cc',30); $fields = array('name','score'); $sql = warpSqlByData('bb',$data,$fields); $falg = $mysqli->query($sql); if($falg) { echo '执行完成'; } //写一个函数 用来生产多条数据的单句sql function warpSqlByData($table,$data,$fields) { $sql = "INSERT INTO ".$table; $col_list =''; $value_list =''; $fields = array_map('formatclos',$fields); if(is_array($fields)) { $col_list = implode(',',$fields); } //组织列 $cols = '('.$col_list.')'; $sql = $sql.$cols; //再来组织value部分 foreach ($data as $value) { //判断列的值 进行转化 $value = array_map('formatvalues',$value); $value_part = implode(',',$value); $value_list .= '('.$value_part.'),'; } $value_list = rtrim($value_list,','); $value_list = ' VALUES'.$value_list; $sql = $sql.$value_list; return $sql; } //格式化列名 function formatclos($col) { return sprintf("`$col`"); } //格式化列名 function formatvalues($val) { return sprintf("'$val'"); }
效果图
ok 完成!
以上这篇PHP实现单条sql执行多个数据的insert语句方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持我们。
相关推荐
-
php往mysql中批量插入数据实例教程
前言 假如说我有这样一个表,我想往这个表里面插入大量数据 CREATE TABLE IF NOT EXISTS `user_info` ( `id` int(11) NOT NULL AUTO_INCREMENT COMMENT '自增主键', `name` varchar(255) NOT NULL default '' COMMENT '姓名', `age` int(11) NOT NULL default '0' COMMENT '年龄', PRIMARY KEY (`id`) ) ENG
-
PHP使用mysqli同时执行多条sql查询语句的实例
PHP数据库操作中,mysqli相对于mysql有很大的优势,建议大家使用:之前我们有介绍过如何在PHP5中使用mysqli的prepare操作数据库,使用mysqli更是支持多查询特性,请看下面这段php代码: <?php $mysqli = new mysqli("localhost","root","","123456"); $mysqli->query("set names 'utf8'"
-
php快速导入大量数据的实例方法
PHP快速导入大量数据到数据库的方法 第一种方法:使用insert into 插入,代码如下: $params = array('value'=>'50′); set_time_limit(0); echo date("H:i:s"); for($i=0;$i<2000000;$i++){ $connect_mysql->insert($params); }; echo date("H:i:s"); 最后显示为:23:25:05 01:32:05
-
PHP大批量插入数据库的3种方法和速度对比
第一种方法:使用insert into 插入,代码如下: $params = array('value'=>'50′); set_time_limit(0); echo date("H:i:s"); for($i=0;$i<2000000;$i++){ $connect_mysql->insert($params); }; echo date("H:i:s"); 最后显示为:23:25:05 01:32:05 也就是花了2个小时多! 第二种方法:使
-
laravel实现查询最后执行的一条sql语句的方法
代码: DB::connection()->enableQueryLog(); $query = DB::table('test')->orderBy('id', 'desc')->get();//需要执行的SQL语句 echo '<pre>'; print_r(DB::getQueryLog()); 执行结果为: Array ( [0] => Array ( [query] => select count(*) as aggregate from `sj_rea
-
PHP实现单条sql执行多个数据的insert语句方法
废话不多说 直接上代码 <?php /** * Created by PhpStorm. * User: Administrator * Date: 2018/4/21 * Time: 10:41 */ header("Content-type: text/html; charset=utf-8"); $mysqli = new mysqli('localhost','root','root','sql'); $mysqli->query('set names utf8')
-
mongodb 数据生成Insert 语句的示例代码
执行: db.getCollection('cap.published').find({}).forEach(function(item){ print( 'db.getCollection("cap.published").insert(' + tojson(item) + ');' ); }); 返回结果: db.getCollection("cap.published").insert({ "_id" : NumberLong(&q
-
sqlserver中向表中插入多行数据的insert语句
下面把在sql吧里一位高手的解决方法,公布下.供大家参考: 假设有个表有 学号.姓名.学校 这三列 然后向这个表中插入 040501 孙明 山东大学 040502 李浩 山东师范 040503 王刚 烟台大学 怎么插入这三行数据啊~~~~~~~ 复制代码 代码如下: insert 表名 select '040504','孙明','山东大学' union select '040502','李浩','山东师范' union select '040503','王刚','烟台大学'
-
在SQL Server中迁移数据的几种方法
1.通过工具"DTS"的设计器进行导入或者导出 DTS的设计器功能强大,支持多任务,也是可视化界面,容易操作,但知道的人一般不 多,如果只是进行SQL Server数据库中部分表的移动,用这种方法最好,当然,也可以进行全部表的移动.在SQL Server Enterprise Manager中,展开服务器左边的+,选择数据库,右击,选择All tasks/Import Data...(或All tasks/Export Data...),进入向导模式,按提示一步一步走就行了,里面分得很
-
SQL Server中对数据截取替换的方法详解
REPLACE(要修改字段名,'被替换的特定字符','替换的字符') 表结构和插入数据 CREATE DATABASE TEST GO USE TEST GO CREATE TABLE TestTable ( UserName VARCHAR(50), UserPwd VARCHAR(50) ) GO INSERT INTO TestTable (UserName,UserPwd) VALUES ('ASDFFFF','WWWEEE') INSERT INTO TestTable (UserNa
-
pandas or sql计算前后两行数据间的增值方法
遇到这样一个需求,有一张表,要给这张表新增一个字段delta,delta的值等于每行的c1列的值减去上一行c1列的值. 我的解决方案,可以通过python的pandas的diff来实现,也可以通过sql来实现,如下 import pandas as pd srcTable = pd.read_csv('pos1.csv') print(srcTable) destTable = srcTable.loc[srcTable.tid == 1, ['ts1', 'ts2']].sort_values
-
Sql Server、Access数据排名的实现方法(例如:成绩排名)
但是,在SQL SERVER 2005 之前,SQL SERVER 2000 并没有提供这个直接的函数供我们使用,同样 ACCESS 也是如此. 下面我们分2种情况,来写出数据排名的实现过程.测试数据如下: 排名后的结果如下: Access 复制代码 代码如下: select name, score, (select iif(isnull(sum(1)), 1, sum(1) + 1) from score_rank where score > a.score) as rank from sco
-
Oracle基础多条sql执行在中间的语句出现错误时的控制方式
多条sql执行时如果在中间的语句出现错误,后续会不会直接执行,如何进行设定,以及其他数据库诸如Mysql是如何对应的,这篇文章将会进行简单的整理和说明. 环境准备 使用Oracle的精简版创建docker方式的demo环境,详细可参看: https://www.jb51.net/article/153533.htm 多行语句的正常执行 对上篇文章创建的两个字段的学生信息表,正常添加三条数据,详细如下: # sqlplus system/liumiao123@XE <<EOF > desc
-
SQL Server批量插入数据案例详解
在SQL Server 中插入一条数据使用Insert语句,但是如果想要批量插入一堆数据的话,循环使用Insert不仅效率低,而且会导致SQL一系统性能问题.下面介绍SQL Server支持的两种批量数据插入方法:Bulk和表值参数(Table-Valued Parameters),高效插入数据. 新建数据库: --Create DataBase create database BulkTestDB; go use BulkTestDB; go --Create Table Create tab
-
从Oracle数据库中读取数据自动生成INSERT语句的方法
Oracle INSERT 语句 方法1 我估计有点 SQL 基础的人都会写 INSERT 语句.下面是 SQL 标准写法. INSERT INTO employees (employee_id, name) VALUES (1, 'Zhangsan'); INSERT INTO employees VALUES (1, 'Shangbo'); 方法2 其实, Oracle 还支持下面的写法,作用和上面的语句完全相同. INSERT INTO (SELECT employee_id, name
随机推荐
- Perl从文件中读取字符串的两种实现方法
- 浅谈jQuery事件绑定原理
- 三个不同文件停顿二秒弹出不同窗口的批处理
- struts2的select标签用法实例分析
- Repeater中添加按钮实现点击按钮获取某一行数据的方法
- php 创建以UNIX时间戳命名的文件夹(示例代码)
- python3使用urllib示例取googletranslate(谷歌翻译)
- 用Python实现一个简单的能够发送带附件的邮件程序的教程
- Android动画之补间动画(Tween Animation)实例详解
- Docker 网络工作原理详解
- 为Android Studio编写自定义Gradle插件的教程
- 整理的40个有用的jQuery技术和教程
- Powershell中请求WebServices并以JSON格式输出结果
- 批处理一键关闭高危有害端口完整版(适合服务器使用)
- Jquery cookie操作代码
- C++文件依存关系介绍
- Java简易计算器程序设计
- java实现小i机器人api接口调用示例
- php中的PHP_EOL换行符详细解析
- Android intent之间复杂参数传递方法详解