【发布时间】:2016-01-25 09:31:19
【问题描述】:
我有一个网络服务,用户可以在其中传递动态数量的问题。
在 php 方面,我使用了 ?去掉每个问题。然后我需要进行批量插入。
到目前为止我所做的如下:
$checkInQs = explode("?", trim($_POST['checkInQs'], "?"));
$checkInSql = "INSERT INTO CheckListQs (ID, GeofenceID, type, question) VALUES ";
$checkInInsertQuery = array();
$checkInInsertData = array();
foreach($checkInQs as $q){
$checkInInsertQuery[] = "('',?, 1, ?)";
$checkInData[] = $geofenceID;
$checkInData[] = $q;
}
基于另一个类似的例子,下面是如何用 pdo 完成它:
if (!empty($checkInInsertQuery)) {
$checkInSql .= implode(', ', $checkInInsertQuery);
$stmt = $db->prepare($checkInSql);
$stmt->execute($checkInData);
}
我不确定如何在我的情况下绑定参数。我正在使用程序绑定。我通常会像这样绑定参数:
mysqli_stmt_bind_param($stmt, "is", $geofenceID, $question);
mysqli_stmt_execute($stmt);
我认为类型部分很简单:
$bindVar = '';
for ($i = 0; $i < count($checkInQs); $i++){
$bindVar .= "is";
}
但不是我不确定如何管理其余数据的传递?
【问题讨论】:
标签: php mysql mysqli prepared-statement bulkinsert