Здравствуйте!
Я собираюсь сделать на сайте живой поиск (как в Google). Нашел достаточно много материалов на эту тему. Лишь из-за одного момента я не могу приступить. Мой уровень знаний достаточно мал и я не могу понять как мне решить следующую проблему:
Вот с сайта, при помощи Ajax поступает запрос на .php скрипт, который должен взять из базы инфу. Вопрос - как можно быстро подключиться к бд или вообще сделать это заранее? Объяснений я не нашел. Я так понял, что больше всего времени тратиться именно на подключение к бд. Подключаться к ней после ввода каждого символа не получится. Все будет виснуть. Во всех примерах, которые я видел просто писалось $mysqli->query(...). Строк подключения там не было, словно оно уже как таковое имеется.
Я попытался вникнуть в систему "постоянных подключений", но так и не разобрался, что к чему. К тому же там ограничения на кол-во одновременных соединений есть.
Очень прошу помочь с этим вопросом. Из-за него буквально стоит весь проект.
Ответ
Нашел ответ.
На странице, на которой будет производиться живой поиск, необходимо создать постоянное соединение с помощью mysqli:
/* Пермаментное подключение к БД */
$pMysqli = new mysqli('p:'.DB_HOST, DB_USERNAME, DB_PASSWORD, DB_NAME);
Для того, чтобы подключение было постоянным, необходимо добавить префикс "p:". Об этом я знал.
После этого, в начале php скрипта, к которому обращается ajax, необходимо написать ту же строчку. Если соединение уже существует, то никакого подключения не состоится, зато у вас уже будет объект соединения.
Пример:
Страница, на которой есть форма живого поиска - somepage.php
Обработчик Ajax запроса - handler.php
$data = $pMysqli->query("SELECT Content FROM TestTable ORDER BY Content LIMIT 1");
/* Работа с полученными данными */
?>
Комментариев нет:
Отправить комментарий