У меня возникли проблемы с моим подготовленным заявлением, не работающим над второй итерацией, и мне было интересно, нужно ли мне освобождать его или что-то, что мне не хватает?Подготовленное заявление Mysqli не работает во второй итерации
// $sheetData an array created from an Excel Sheet
for($i=0; $i <= count($sheetData); $i++) {
$sql;
$sql .= "INSERT INTO equipment";
$sql .= "(tag,date)";
$sql .= "VALUES(?,?)";
$sql .= "ON DUPLICATE KEY UPDATE number=VALUES(tag), date=VALUES(date)";
if($stmt = $db->prepare($sql)) {
if(Utility::filterNull($sheetData[$i][$idxOfTag]),Utility::convertDT($sheetData[$i][$idxOfDate]) != "1969-12-31 23:59:59") {
$stmt->bind_param("ss",$sheetData[$i][$idxOfTag],$sheetData[$i][$idxOfDate]);
$stmt->execute();
}
} else {
DebugLog($debugFileName,"Prepared Statement is false. Error: " . $stmt->error);
DebugLog($debugFileName,"i = " . $i);
}
} // i loop
Он возвращает ошибку только на второй итерации.
DebugLog($debugFileName,$db->error);
=
You have an error in your SQL syntax;
check the manual that corresponds to your
MySQL server version for the right syntax
to use near 'INSERT INTO equipment (tag,date' at line 1
Таким образом, в основном в моей базе данных он будет добавлять самую первую строку таблицы и ничего больше.
Это не синтаксическая ошибка, потому что работает первая итерация.
Любые идеи?
Застрял на этом не менее 2-3 часов.
Ahhhh три часа на этом. –
Рад, что я мог бы помочь ... ты тоже помог мне ... только превысил 2000 очков репутации! – Sablefoste
Я бы проголосовал за вас, но не хватило репутации: \ –