これが私のphpスクリプトのチャンクで、何かが欠けているに違いありません:
$startIndex = 7;
$endIndex = 303;
$defaults = range($startIndex, $endIndex);
$sql = "INSERT INTO items (itemId, userId) VALUES ";
$part = array_fill(0, count($defaults), "(?, ?)");
$sql .= implode(",", $part);
try {
$db = DB::getInstance();
$stmt = $db->dbh->prepare($sql);
$i = 1;
foreach($defaults as $default) {
$stmt->bindParam($i++, $default);
$stmt->bindparam($i++, $userId);
}
if ($stmt->execute()) {
echo "result=ok";
}else {
echo 'invalid query';
}
}catch(PDOException $e) {
echo $e->getMessage();
}
複数の挿入が行われており、すべてのitemIdフィールドが303($ defaults配列の最後の要素)として入力されていることを除いて、すべてが良好に見えます。$ defaultをエコーすると、期待するintのシーケンスが得られるため、foreachループは期待どおりに機能しているようです。だから、それはバインディングに問題があるに違いありません
助けてください :)