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 完成

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章