PHP實現單條sql執行多個數據的insert語句
阿新 • • 發佈:2018-12-07
廢話不多說 直接上程式碼
<?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 完成