php - 编写多个Insert mysqli

标签 php mysql mysqli

请在关闭之前阅读完整问题:)
我正在寻找一个带有 mysqli 的准备好的语句(重要,不是 PDO,因为我不能使用它并且不能将一些 PDO 代码传输到 mysqli。),我可以在其中插入长查询很多值(大约 2000)。但是必须准备查询。


所以我是这样开始的:

$array = array("a1", "a2", "a3","a5", "a7", "a5","a9", "a32", "a3", "a4"); 
// AND SO ON UP TO 2000
$type = "s";
$end = count($array);

$query = "INSERT INTO table (value) VALUES (?)";
for ($i = 0; $i <= $end - 1; $i++) 
{
    $query  .= ", (?)";
    $type   .= "s";
}

$stmt = $conn->prepare($query); 
$stmt->bind_param("$type", /* PROBLEM */); // HERE IS THE PROBLEM!!!
$stmt->execute();
$stmt->close();


但现在我的问题是,如何动态绑定(bind)“bind_param”中的变量?
请不要在“执行”上显示任何类似 for 循环的东西,因为这对于 2000 次插入来说太慢了:)。

我的意思是类似

$allvalues = "";
foreach ($array as $value) 
{
    $allvalues .= "$value ";
}
$stmt->bind_param("$type", $allvalues);

当然,我不能绑定(bind)它。

最佳答案

使用call_user_func_array使用数组调用函数。

或者直接传递所有的变量来执行,那么你甚至不需要使用bind_param

关于php - 编写多个Insert mysqli,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15094048/

相关文章:

php - 预准备语句中 mysqli select 语句中 LIKE/OR 运算符的问题

php - mysqli_fetch_assoc()期望参数/调用成员函数bind_param()错误。如何获取并修复实际的mysql错误?

php - 对不同表中的相同字段进行排序

php - 重复字段上特定于字段的错误

php - 转到带有重复按钮的 PHP 页面(提交数据)?

mysql - 阐明如何使用 WITH、AS 函数代替子查询

mysql - 不存在则插入,存在则更新

php - 使用 php mysql 将 auto_increment 主值设置为其他字段

php - 如何使用 OpenOffice 从我的 PHP 网页将 RTF 转换为 PDF?

php - 使用存储过程 : different results in mysqli->query ("CALL select_procedure") VS mysqli->query ("SELECT ...")