並べ替えが可能で、画像の位置を保存する必要があるユーザーがアップロードした画像がいくつかあります。それらを反復しながらループインデックスを使用するだけで、これを簡単に実行できると考えていました。ただし、 $i 変数を使用して 3 番目のパラメーターをバインドすると、参照として渡され、その値が必要になります。どうすればこれを回避できますか?
コードは次のとおりです。
$postId = $args['postId'];
$images = explode(",", $args['images']);
$sql = 'INSERT INTO post_image (name,postId,ordinal) VALUES ';
$part = array_fill(0, count($images), "(?, ?, ?)");
$sql .= implode(",", $part);
logit($sql);
try{
$db = DB::getInstance();
$stmt = $db->dbh->prepare($sql);
$count = count($images);
$n = 1;
for($i = 0; $i < $count; $i++){
$stmt->bindParam($n++, $images[$i]);
$stmt->bindParam($n++, $postId);
$stmt->bindParam($n++, $i);
}
$result = $stmt->execute();
if($result !== false) {
return true;
}else {
logit('Query Failed');
return false;
}
}catch(PDOException $e) {
logit($e->getMessage());
return false;
}