Сценарий PHP Sqlite завершается ошибкой в ​​инструкции bindparam - PullRequest
0 голосов
/ 13 октября 2018

Я просматривал похожие вопросы, из которых я кое-что узнал, но, похоже, я не смог добиться прогресса в решении моей проблемы.Я подозреваю, что мог неправильно инициализировать БД или что-то в этом роде.

Мой скрипт получает значения из строки запроса -

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" );

        }
?>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...