首页 > 解决方案 > PHP 'For Each' 将行从数组或字符串插入 mysql

问题描述

我正在尝试根据数组将多行插入到表中……每个 $value 都是逗号分隔的值。

我知道这不是最好的方法,甚至不是正确的方法——只是试图获得一些关于如何以正确的方式实现这一目标的指导。

$someArray=array(96,97,98,99,100,101,103,105);
foreach($someArray as $value){ 

$sql = "INSERT INTO bid_package(user_company) VALUES('".$value."');";
echo $sql;
echo "<br />";


 INSERT INTO bid_package(user_company) VALUES('96');
 INSERT INTO bid_package(user_company) VALUES('97');
 INSERT INTO bid_package(user_company) VALUES('98');
 INSERT INTO bid_package(user_company) VALUES('99');
 INSERT INTO bid_package(user_company) VALUES('100');
 INSERT INTO bid_package(user_company) VALUES('101');
 INSERT INTO bid_package(user_company) VALUES('103');
 INSERT INTO bid_package(user_company) VALUES('105');

标签: phpmysql

解决方案


首先,您应该使用准备好的语句,而不是直接将变量插入到查询中。这是做你正在尝试的事情的一种方法。

$mysqli = new mysqli('localhost', 'user', 'password', 'mysampledb'); // your mysqli handle

$stmt = $mysqli->prepare("INSERT INTO SampleTable VALUES (?)"); // prepare your query

//bind value as a reference
$stmt->bind_param('s', $val);

//define values
$someArray=array(96,97,98,99,100,101,103,105);

//loop through values
foreach($someArray as $val) {
    //execute statement
    $stmt->execute();
}

如果您曾经将数据传递给查询,则应使用准备好的语句。


推荐阅读