[英]Insert values from an array into MySQL using PHP
假设我有如下数组:
$array = array('first_value',
'second_value',
'thrid_value', 'and so on');
我想在其中插入这些值的列,但每个值都在单独的行中。
可以这样做吗?
显然,对此有一些答案,就是循环遍历数组元素,并为每个循环执行一个insert语句,但这似乎是不明智的。
或者考虑到我会有一个ID列,这会有所帮助(但我没有)。
引入的数据量不是很大,因此循环是完全可行的,我只是想确保没有更容易的方法来执行此操作,而我可能并不知道。
您可以使用准备好的语句; 第一个查询将发送SQL语句,随后的调用将仅发送数据,从而减少了负载:
$stmt = $db->prepare('INSERT INTO mytable (colname) VALUES (?)');
foreach ($array as $value) {
$stmt->execute(array($value));
}
如果您使用的是PDO ,例如上面的示例,请确保禁用准备好的语句仿真。
// connect to database and store the resource in $connection
$array = array('first_value',
'second_value',
'thrid_value', 'and so on');
foreach($array as $value)
{
$value=mysqli_real_escape_string($connection,$value);
mysqli_query($connection,"INSERT INTO yourTABLE(columnName) VALUES('$value')");
}
您可以将它们全部放入具有多个VALUES
列表的单个INSERT
语句中。
$values = implode(',', array_map(function($v) use ($mysqli) {
return "'" . $mysqli->real_escape_string($v) . "'"; },
$array));
$query = "INSERT INTO yourTable (Column) VALUES $values";
$mysqli->execute($query) or die ($mysqli->error);
从mysql手册进行插入 ,您可以尝试以下操作:
INSERT INTO yourtable (column_name) VALUES (value_a), (value_b), (value_c);
$array = array('first_value','second_value','third_value');
$SQL = "INSERT INTO `table` (column) VALUES('".implode("'),('",$array)."')";
要么
$values = '';
foreach($array as $val){
$values .= !empty($values)? ",('{$val}')" : "('{$val}')";
}
$SQL = "INSERT INTO `table` (column) VALUES{$values}";
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.