0 Пользователей и 1 Гость просматривают эту тему.
  • 7 Ответов
  • 855 Просмотров
*

sSeifeRr

  • Осваиваюсь на форуме
  • 13
  • 0 / 0
Запрос в бд
« : 02.08.2017, 16:35:13 »
Помогите пожалуйста собрать запрос в бд. Вот что получилось сделать, но ругается You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near 'тест1', 'текст2 ' at line 3.
Код: php
$query = $db->getQuery(true);
$sub_query= $db->getQuery(true);

$query->select($db->quoteName('questList'))
      ->from($db->quoteName('#__users'))
  ->where($db->quoteName('id'). ' = ' . (int) $c);
     
$db->setQuery($query);

$result = $db->loadResult();
$questList = unserialize($result);
$questList = implode("', '", $questList); //получаем строку в виде string(145) "текст1', 'текст2', 'текст3"


$sub_query->select('*')
      ->from($db->quoteName('test'))
  ->where($db->quoteName('ds')  . ' IN (' . $questList . ')');

 
$db->setQuery($sub_query);
$result = $db->loadObjectList();
*

SeBun

  • BanMaster
  • 4015
  • 259 / 5
  • @SeBun48
Re: Запрос в бд
« Ответ #1 : 02.08.2017, 17:29:43 »
Перед

Код: php
$db->setQuery($sub_query);

напишите

Код: php
die ($sub_query);

И посмотрите, как выглядит ваш запрос.
Оказываю услуги по Joomla | Миграция/Обновление | Сопровождение | IT-аутсорсинг | Недорогие домены и хостинг
*

fsv

  • Живу я здесь
  • 2765
  • 402 / 2
Re: Запрос в бд
« Ответ #2 : 02.08.2017, 17:36:03 »
первой и последней кавычки в IN нет
Веб-разработка: заказ. Только новая объемная разработка. Качественно, дорого.
*

sSeifeRr

  • Осваиваюсь на форуме
  • 13
  • 0 / 0
Re: Запрос в бд
« Ответ #3 : 02.08.2017, 17:40:58 »
Если убираю кавычки   ->where($db->quoteName('ds')  .  IN (' . $questList . ')); то выдает Call to undefined function IN()
*

fsv

  • Живу я здесь
  • 2765
  • 402 / 2
Re: Запрос в бд
« Ответ #4 : 02.08.2017, 18:08:45 »
Если убираю кавычки 
"нет" подразумевает добавить, а не убрать

тут нет -
//получаем строку в виде string(145) "текст1', 'текст2', 'текст3"
Веб-разработка: заказ. Только новая объемная разработка. Качественно, дорого.
*

sSeifeRr

  • Осваиваюсь на форуме
  • 13
  • 0 / 0
Re: Запрос в бд
« Ответ #5 : 02.08.2017, 18:14:40 »
$questList = $db->quote($questList);
преобразует строку в string(151) "'тест1\', \'тест3\', \'тест3'"  я так понял надо как-то заэкранировать и боковые кавычки, но как?
« Последнее редактирование: 02.08.2017, 18:18:52 от sSeifeRr »
*

SmokerMan

  • Гуру
  • 5293
  • 720 / 26
Re: Запрос в бд
« Ответ #6 : 02.08.2017, 18:22:24 »
Цитировать
$questList = implode("', '", $questList); //получаем строку в виде string(145) "текст1', 'текст2', 'текст3"
что за бред?
Код
            $questList = array('1', '2');
            foreach ($questList as $key => $value) {
                $questList[$key] = $db->quote($value);
            }
            $questList = implode(',', $questList);

*

sSeifeRr

  • Осваиваюсь на форуме
  • 13
  • 0 / 0
Re: Запрос в бд
« Ответ #7 : 02.08.2017, 18:28:19 »
Вроде разобрался, спасибо
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Помогите оптимизировать getDBO запрос

Автор goga_pgasovav

Ответов: 5
Просмотров: 442
Последний ответ 10.12.2020, 12:36:56
от goga_pgasovav
[решено] создать MySQL-запрос по красоте :)

Автор effrit

Ответов: 13
Просмотров: 854
Последний ответ 30.09.2017, 16:58:21
от effrit
sql запрос из материла Joomla

Автор xak400

Ответов: 1
Просмотров: 849
Последний ответ 30.06.2017, 09:45:32
от SmokerMan
Как составить запрос с выбором данных из строки с разделителем?

Автор denism300

Ответов: 34
Просмотров: 1764
Последний ответ 20.11.2016, 21:48:07
от robert
Как после сохранения заменить текст/дескрипшн (сделать sql запрос)?

Автор Karyuudo

Ответов: 2
Просмотров: 1005
Последний ответ 09.09.2015, 13:41:54
от Karyuudo