Ошибка означает, что второй аргумент, как ожидается, будет ссылкой на переменную.
Поскольку вы не передаете переменную, а целое число 0, оно генерирует указанную ошибку.
Чтобы обойти это, выполните следующие действия:
$update->bind_param("is", $a = 0, $selectedDate); //LINE 13
Если вы хотите понять, что происходит, а не просто фиксировать ваш Fatal error
, прочтите следующее: http: // php. нетто / ручной / EN / language.references.pass.php
Во-первых, вы не должны использовать DATE_FORMAT
, если хотите сравнить дату, потому что DATE_FORMAT
изменяет ее на строку больше не на дату ,
UPDATE Session
SET Active = ?
WHERE SessionDate <= ?
Во-вторых, сначала сохраните значение переменной и передайте ее параметру
$createDate = mktime(0,0,0,09,05,date("Y"));
$selectedDate = date('d-m-Y', ($createDate));
$active = 0;
$sql = "UPDATE Session SET Active = ? WHERE SessionDate <= ?";
$update = $mysqli->prepare($sql);
$update->bind_param("is", $active, $selectedDate);
$update->execute();