我想要做的是在 for loop 中创建不同的插入语句,并在循环中执行它们。这可能吗?
这是简化代码:
$mysqli = new mysqli("localhost", "user", "password", "database");
for($i=1; $i<10; $i++){
// $query string is created through code, so
// INSERT statement is varying after each loop.
// Lets say, in another step $query will be "INSERT INTO table (row4,row5) VALUES (?,?)";
// $params will be array("value4","value5");
$query = "INSERT INTO table (row1,row2,row3) VALUES (?,?,?)";
$param_type = "sss";
$params = array("value1","value2","value2");
$insert_stmt = $mysqli->prepare($query);
array_unshift($params, $param_type);
call_user_func_array(array($insert_stmt, 'bind_param'), refValues($params));
$insert_stmt->execute();
$insert_stmt->close();
}
如果我运行此代码,我得到的只是一个插入行和警告 “call_user_func_array()期望参数1是有效的回调,第一个数组成员不是...中的有效类名或对象”
所以我的问题是:如何通过for循环准备和插入不同的查询和参数?
答案 0 :(得分:0)
有可能甚至容易制作 你唯一需要的是PDO:
$queries = array('insert 1', 'insert 2', ...);
$params = array(array(...),array(...), ...);
foreach ($queries as $i => $sql) {
$stm = $pdo->prepare($sql);
$stm->execute($params[$i]);
}
那是所有