@niki252

Передача переменной $_POST в WHERE — в чем проблема?

Возник такой вопрос. Из одного файла методом POST передаю переменную на другую страницу. Ниже приведен код. Согласно этого кода из базы МSQL должна быть произведена выборка по этой переменной -$term2 , то есть должны быть выбраны все строки где login1 имеет значение этой самой переменной $term2.

Делала в ПДО и в старой mysql. Результат один и тот же там и там:

1. В echo переменная выводится - любая.
2. Если я в переменной $term2 делаю запрос на вывод данных из МSQL только тех, которые имеют значение в виде простых цифр, типа tinyint и т.д., то все работает, то есть заменяю переменную $term2 на что-то другое . Но если ссылаюсь на данные, которые содержат буквы, типа varchar, ничего не работает. Выдает- пусто.
3. С кодировкой все правильно - данные в базу и обратно выводятся без проблем.
4. Кавычки пробовала разные-не помогает.
5. В программировании - чайник.

Может быть кто-то сталкивался с подобной проблемой? Вроде бы как простейшая проблема, но не решается.

$term2 = $_POST["login22"];

$sth2 = $db->prepare("SELECT * FROM `messages` WHERE login1=?");

$sth2->execute(array($_POST["login22"]));

while($row3 = $sth2->fetchAll())
{
echo "" . $row3['name'] . " " . $row3['text_comment'] . "";

var_dump($row3);
}
echo "$term2";
  • Вопрос задан
  • 79 просмотров
Решения вопроса 1
@niki252 Автор вопроса
Проблема решена. Надо было вывести сообщения пользователя login1 по переменной $term2. Ввела в таблицу в БД еще колонку -id пользователя. Теперь сортировка идет по id. Так как id - числовое значение, то работает.
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

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

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