session_start() вызывает ошибку Couldn't fetch mysqli

117
18 сентября 2019, 10:40

Всем привет!

Cессия начинается на странице index.php, при этом session_start() возвращает true, и в $_SESSION записываются значения. Затем по кнопке происходит переход на другую страницу forms.php, которая начинается с такого кода:

<?php
session_start();
?>
<!DOCTYPE html>

session_start() возвращает true, но значения массива записанного в $_SESSION, обновляются, имеют значение null, хотя в предыдущей странице значения у массива были. Ключи массива остались.

все без пробелов, кодировка UTF-8 без BOM. Проект развернут на на Open Server используется xdebug и PHPStorm.

В результате после отработки скриптом стр. 2, выдает следующие сообщения об ошибках:

PHP Warning: main(): Couldn't fetch mysqli in /W:/domains/wms.local/forms.php on line 4
PHP Warning: main(): Couldn't fetch mysqli in /W:/domains/wms.local/forms.php on line 4
PHP Warning: main(): Couldn't fetch mysqli in /W:/domains/wms.local/forms.php on line 4
PHP Warning: main(): Property access is not allowed yet in /W:/domains/wms.local/forms.php on line 4
PHP Warning: main(): Couldn't fetch mysqli in /W:/domains/wms.local/forms.php on line 4
PHP Warning: main(): Couldn't fetch mysqli in /W:/domains/wms.local/forms.php on line 4
PHP Warning: main(): Couldn't fetch mysqli in /W:/domains/wms.local/forms.php on line 4
PHP Warning: main(): Couldn't fetch mysqli in /W:/domains/wms.local/forms.php on line 4

Подскажите, в чем причина ошибок? Почему обнуляются значения массива, сохраненного в сессии и как этого избежать? Обгуглил все в англоязычном интернете, ничего пока не нашел.

Заранее спасибо всем за любый идеи.

Answer 1

Из этого путанного вопроса (казалось бы - где сессии, а где mysqli) не очень понятно, в чем конкретно состоит проблема, но если предположить, что сообщение об ошибке действительно связано со стартом сессии, то проблема очевидна - соединение с БД невозможно сохранить в сессии. При каждом запросе к РНР надо соединяться с БД заново. Нет, бояться этого не нужно, так работают все сайты на РНР. "Улучшать" или "оптимизировать" это не нужно. Надо просто один раз соединиться с БД за все время работы скрипта.

Если же объект mysqli не сохраняется в сессии, и ошибка вызвана другими причинами, то надо искать код, который закрывает соединение с БД. Поскольку именно это является причиной ошибки Couldn't fetch mysqli

Answer 2

Посмотри настройки сервера session_save_path.

Вообще может, что у тебя сервер считает, что с www и без - два разных сайта.

Встречал такие проблемы. Прикол был не в обновлении, а в том, что 2 сессии были. Посмотри также настройки .htaccess.

READ ALSO
Изменение размера картинки при загрузке на php (не могу настроить корректно)

Изменение размера картинки при загрузке на php (не могу настроить корректно)

Добрый день! Помогите сделать одну штуку! Есть уменьшение размера картинки , точнее исходный размер $final_width_of_image = 1600;

130
Шифрованая строка в php и java отличается

Шифрованая строка в php и java отличается

Шифрую одну и туже строку одним и тем же ключем в пхп и ява на выходе получается разная строкаПодскажите в чем у меня ошибка?

106
Как пофиксить баг на gmail, не правильное отображение сгенерированного кода?

Как пофиксить баг на gmail, не правильное отображение сгенерированного кода?

Отправляю по почте сгенерированный на js код, когда на gmail приходит письмо то отображает его совсем не вменяемо

100
Основы PHP и array_rand

Основы PHP и array_rand

Друзья, добрый день помогите с вопросом:

94