私は次のコードを持っています...
$statement = $conn->prepare("insert into logtest (course, date, time, distance,
actualstarttime, finishtime, fav, favtotalmatched, favwma, 2ndfav,
2ndfavtotalmatched, 2ndfavwma, 3rdfav, 3rdfavtotalmatched, 3rdfavwma,
orangeflag, greenflag, betplaced, totalracetime, numcalculations,
secswaitedbeforemonitoring, monitorstarttime, totalmonitoringtime)
values (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?);");
for($i = 0; $i < 23; $i++){
$statement->bindParam($i + 1, $record[$i]);
}
$recordsprocessed = 0;
$line = fgets($file); // Do this once before the loop to go past
// the column headers line
while (!feof($file)){
$line = fgets($file);
$record = explode(",", $line);
print_r($record);
$statement->execute();
++$recordsprocessed;
}
echo "<p>Import finished. $recordsprocessed records imported.</p>";
コードはデータベースをヌルで埋めています。理由がわかりません。を使用して、配列に値が含まれprint_rていることを確認しました。$record
ページhttp://php.net/manual/en/pdo.prepared-statements.phpから、変数に値が含まれる前にパラメーターを変数にバインドできるという意味があるため、$recordおよびのアイテムにバインドできると想定しましたその後、それらの値を後でループに入力します。
私は何を間違っていますか?それとも、bindParam は単に配列では機能しないのでしょうか?