Задать вопрос
@habra_desert

Почему появляется ошибка mysqli error #1054?

делаю запрос к базе MySql:
$data = $db->query("SELECT `price` FROM `price` WHERE `name` IN('test','test2', 'test3')");

все работает и возвращается нужный результат.

теперь то же самое только с массивом:
$name_id = array('test', 'test2', 'test3');
$data = $db->query("SELECT `price` FROM `price` WHERE `name` IN(".implode(',', $name_id).")");


в результате ошибка
mysqli error #1054: Unknown column 'test' in 'where clause'

но я ведь в обоих случаях ищу не колонки а поля, почему появляется эта ошибка?
  • Вопрос задан
  • 2289 просмотров
Подписаться 2 Оценить Комментировать
Помогут разобраться в теме Все курсы
  • Skillfactory
    Профессия Fullstack веб-разработчик на JavaScript и PHP
    20 месяцев
    Далее
  • Хекслет
    PHP-разработчик
    10 месяцев
    Далее
  • Нетология
    Веб-разработчик с нуля: профессия с выбором специализации
    14 месяцев
    Далее
Решения вопроса 1
@eandr_67
web-программист (*AMP, Go, JavaScript, вёрстка).
А кавычки вокруг test где? Твой второй вариант создаёт запрос:

$data = $db->query("SELECT `price` FROM `price` WHERE `name` IN(test,test2,test3)");

Что, очевидно, не равно первому варианту.

P.S. Неужели так сложно набрать
var_dump("SELECT `price` FROM `price` WHERE `name` IN(".implode(',', $name_id).")");
и самому посмотреть, что получается?
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы