在php mysql中插入多个值 [英] Insert multiple values in php mysql
本文介绍了在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屋!
查看全文