powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / PHP, Perl, Python [игнор отключен] [закрыт для гостей] / MySQLi PHP. Составной запрос, зависящий от условий
15 сообщений из 15, страница 1 из 1
MySQLi PHP. Составной запрос, зависящий от условий
    #38467844
Добрый день, многоуважаемое сообщество.
Подскажите пожалуйста, каким способом используя MySQLi в PHP можно выполнять составные подготовленные запросы?
Пример того, что я имею ввиду под составными запросами и как это делалось при помощи обычных запросов MySQL:
Код: php
1.
2.
3.
4.
5.
$sql = "SELECT * FROM table WHERE type = 10";
$terms = "";
if (isset($foo)) $terms .= " AND quality = ".$foo;
if (isset($bar)) $terms .= " AND color = '".$bar."'";
$result = mysql->query($sql.$terms);


Буду благодарен.
...
Рейтинг: 0 / 0
MySQLi PHP. Составной запрос, зависящий от условий
    #38467861
miksoft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Да практически так же. В доке взгляните на примеры.
...
Рейтинг: 0 / 0
MySQLi PHP. Составной запрос, зависящий от условий
    #38467929
miksoft,

Извините, не могу найти пример именно с prepare и execute. Чтобы было разное количество плейсхолдеров. Если не затруднит, дайте ссылочку пожалуйста.
...
Рейтинг: 0 / 0
MySQLi PHP. Составной запрос, зависящий от условий
    #38468025
miksoft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
...
Рейтинг: 0 / 0
MySQLi PHP. Составной запрос, зависящий от условий
    #38468061
miksoft,

Спасибо. Но я ищу немного другое. Меня интересует, как указывать различное количество параметров (bind_param) в зависимости от того, как был сконструирован сам запрос (исходя из моего первого поста).
Т.е. бывает ситуация, когда в bind_param указывается один параметр, а бывает, при наличии определенных условий, к запросу присоединяются дополнительные условия WHERE и параметров в bind_param уже нужно указать больше. Вот в этом-то и вопрос.

В моем примере существует ситуация, когда переменные $foo и $bar не определены, тогда в mysqli запросе будет единственный плейсхолдер type, однако существует возможность появления в запросе одного или сразу двух дополнительных параметров, в зависимости от определения переменных $foo и $bar. Вот как в такой ситуации быть с mysqli?
...
Рейтинг: 0 / 0
MySQLi PHP. Составной запрос, зависящий от условий
    #38468067
miksoft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Денис Бондарь,

Не понимаю в чем проблема. Нужно три плейсхолдера - строите (и отправляете в prepare) запрос с тремя плейсхолдерами и биндите три параметра.
...
Рейтинг: 0 / 0
MySQLi PHP. Составной запрос, зависящий от условий
    #38468068
miksoft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вот, в соседней ссылке как раз три бинда.
http://php.ru/manual/mysqli-stmt.execute.html
...
Рейтинг: 0 / 0
MySQLi PHP. Составной запрос, зависящий от условий
    #38468912
miksoft,

Проблема в том, что в зависимости от условий, от которых будет зависеть содержание запроса, расположение плейсхолдеров в запросе будет разным.
Если переписать мой пример:
Код: php
1.
2.
3.
4.
5.
6.
7.
$sql = "SELECT * FROM table WHERE type = ?";
$terms = "";
if (isset($foo)) $terms .= " AND quality = ?";
if (isset($bar)) $terms .= " AND color = ?";
$stmt = mysqli->prepare($sql.$terms);
$stmt->bind_param("iis", $type, $foo, $bar);  // Вот тут не всегда плейсхолдеры будут соответствовать параметрам
$stmt->execute();


Тут может быть ситуация, когда в запросе один плейсхолдер, два плейсхолдера (причем либо $foo либо $bar) и три плейсхолдера.
...
Рейтинг: 0 / 0
MySQLi PHP. Составной запрос, зависящий от условий
    #38468940
miksoft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
http://www.php.net/manual/en/mysqli-stmt.bind-param.php#89171
фокус в функции call_user_func_array
просмотрите и другие комменты с использованием этой функции
...
Рейтинг: 0 / 0
MySQLi PHP. Составной запрос, зависящий от условий
    #38468967
miksoft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Кстати, тема не совсем по адресу, так что топик перенесу. По идее, там больше вариантов должны предложить.

Модератор: Тема перенесена из форума "MySQL".
...
Рейтинг: 0 / 0
MySQLi PHP. Составной запрос, зависящий от условий
    #38468999
Фотография ScareCrow
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
...
Рейтинг: 0 / 0
MySQLi PHP. Составной запрос, зависящий от условий
    #38469212
Код: php
1.
SELECT * FROM table WHERE type = ? AND quality LIKE ? AND color LIKE ?;


http://www.php.net/manual/ru/mysqli-stmt.bind-param.php#108790
...
Рейтинг: 0 / 0
MySQLi PHP. Составной запрос, зависящий от условий
    #38469976
как-то так...,

Использование условий по полям quality и color не всегда необходимо. Например наборной фильтр на сайте. Если опция не включена - не фильтруем вообще.
...
Рейтинг: 0 / 0
MySQLi PHP. Составной запрос, зависящий от условий
    #38470008
Ну не фильтруй... если не плступило значения ставь %
Там следующий пример как раз твой составной запрос если считаешь что этот запрос будет тяжелым.
...
Рейтинг: 0 / 0
MySQLi PHP. Составной запрос, зависящий от условий
    #38470247
как-то так...,

Спасибо! Кажется, это то, что нужно.
...
Рейтинг: 0 / 0
15 сообщений из 15, страница 1 из 1
Форумы / PHP, Perl, Python [игнор отключен] [закрыт для гостей] / MySQLi PHP. Составной запрос, зависящий от условий
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]