Я просматривал похожие вопросы, из которых я кое-что узнал, но, похоже, я не смог добиться прогресса в решении моей проблемы.Я подозреваю, что мог неправильно инициализировать БД или что-то в этом роде.
Мой скрипт получает значения из строки запроса -
alarmingwrite5.php?frequency=2&durationChoice=5&hourChoice=8&minuteChoice=30&updateRow=UPDATE+NOW
помещает их в переменные, а затем должен записать значения втаблица БД sqlite.Есть только одна таблица с именем alarmTimes, и только 4 из 5 полей нуждаются в обновлении.
Все выглядит нормально, пока я не свяжу значения с параметрами в операторе обновления.
Любая помощь очень ценится, спасибо.
<?php
if($_SERVER['REQUEST_METHOD'] == "GET" and isset($_GET['updateRow']))
{
updateDB();
}
function updateDB()
{
$durationChoice = (integer) $_GET["durationChoice"];
echo gettype($durationChoice).'<br>'; // check type
$frequency = (integer) 2;
echo gettype($frequency).'<br>'; // check type
$hourChoice = (integer) $_GET["hourChoice"];
echo gettype($hourChoice).'<br>'; // check type
$minuteChoice = (integer) $_GET["minuteChoice"];
echo gettype($minuteChoice).'<br>'; // check type
$db = new SQLite3('/home/pi/sqliteDB/testdbsqlite3.db');
$statement = $db->prepare("UPDATE alarmTimes SET alarmLength = :alarmLength, alarmCheck = :alarmCheck, alarmHour = :alarmHour, alarmMinute = :alarmMinute where entryID = 1 ");
echo('prepped</br>'); // This appears
$statement->bindParam(":alarmLength", $durationChoice, SQLITE3_INTEGER);
echo('parameter alarmLength bound'); // **** This does not appear so problem is with binding parameters or the values being bound****
$statement->bindParam(":alarmCheck", $frequency, SQLITE3_INTEGER);
$statement->bindParam(":alarmHour", $hourChoice, SQLITE3_INTEGER);
$statement->bindParam(":alarmMinute", $minuteChoice, SQLITE3_INTEGER);
echo('parameters bound'); // **** This does not appear ****
$statement->execute();
echo('executed'); // **** This does not appear ****
// redirect to same page **** does not happen
ob_start();
$url = 'alarmingwrite5.php';
while (ob_get_status())
{
ob_end_clean();
}
header( "Location: $url" );
}
?>