0

並べ替えが可能で、画像の位置を保存する必要があるユーザーがアップロードした画像がいくつかあります。それらを反復しながらループインデックスを使用するだけで、これを簡単に実行できると考えていました。ただし、 $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;
}
4

1 に答える 1

0

3 番目のパラメーターに bindValue を使用して修正しました。

于 2013-02-15T22:03:17.143 に答える