在php mysql中插入多个值 [英] Insert multiple values in php mysql

查看:59
本文介绍了在php mysql中插入多个值的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我这里有一个示例代码,用于更新php mysql中的多个值.我想知道如何插入多个值?

<?php
    include('connect.php');
    $column1=$mysqli->real_escape_string($_POST["column1"]);
    $column2=$mysqli->real_escape_string($_POST["column2"]);
    $counter=$mysqli->real_escape_string($_POST["counter"]);
    $N = count($counter);
    for($i=0; $i < $N; $i++)
    {
    $result = $mysqli->query("UPDATE table SET column1='$column1[$i]', column2='$column2[$i]' where counter='$counter[$i]'");
    }

?>

解决方案

使用标准mysql 插入语句.

$N = count($_POST['counter']);
$query = "insert into table (column1, column2) values
          (?,?)". str_repeat(',(?,?)', $N-1);
$st = $mysqli->prepare($query);
$placeholders = str_repeat('s', $N*2);
$params = array($placeholders);
foreach($_POST['column1'] as $i => $c1) {
    $c2 = $_POST['column2'][$i];
    $params[] = $c1;
    $params[] = $c2;
}
call_user_func_array(array($st, 'bind_param'), refValues($params));
$st->execute() or die($mysqli->error);
$st->close();

function refValues($arr){
    if (strnatcmp(phpversion(),'5.3') >= 0) //Reference is required for PHP 5.3+
    {
        $refs = array();
        foreach($arr as $key => $value)
            $refs[$key] = &$arr[$key];
        return $refs;
    }
    return $arr;
}

大部分复制自此处.

I have here a sample code for updating multiple value in php mysql. I wondering how I can insert multiple values?

<?php
    include('connect.php');
    $column1=$mysqli->real_escape_string($_POST["column1"]);
    $column2=$mysqli->real_escape_string($_POST["column2"]);
    $counter=$mysqli->real_escape_string($_POST["counter"]);
    $N = count($counter);
    for($i=0; $i < $N; $i++)
    {
    $result = $mysqli->query("UPDATE table SET column1='$column1[$i]', column2='$column2[$i]' where counter='$counter[$i]'");
    }

?>

解决方案

Use standard mysql insert statement with mysqli bind_param and php's call_user_func_array.

$N = count($_POST['counter']);
$query = "insert into table (column1, column2) values
          (?,?)". str_repeat(',(?,?)', $N-1);
$st = $mysqli->prepare($query);
$placeholders = str_repeat('s', $N*2);
$params = array($placeholders);
foreach($_POST['column1'] as $i => $c1) {
    $c2 = $_POST['column2'][$i];
    $params[] = $c1;
    $params[] = $c2;
}
call_user_func_array(array($st, 'bind_param'), refValues($params));
$st->execute() or die($mysqli->error);
$st->close();

function refValues($arr){
    if (strnatcmp(phpversion(),'5.3') >= 0) //Reference is required for PHP 5.3+
    {
        $refs = array();
        foreach($arr as $key => $value)
            $refs[$key] = &$arr[$key];
        return $refs;
    }
    return $arr;
}

Mostly copied from here.

这篇关于在php mysql中插入多个值的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆