передача строки $ _GET с буквенно-цифровым значением в SQL-запрос в Postgresql

0

Я пытаюсь передать альфа-числовое значение, которое я получаю из переменной $ _GET в SQL-запрос. Когда я использую числовое значение, все работает нормально, но мне нужно использовать строки, которые смешивают числовые символы и символы, например, "126A02249003192". Я всегда получаю сообщение об ошибке, и я пытался использовать значение пустое, чтобы придать ему текст с помощью :: text или с помощью to_char(), но ничего не работает. Здесь код, который я использую:

$parameters='id_cadast = '.$_GET['id_cadast'].'::text';

$sql = "SELECT * FROM table WHERE " . pg_escape_string($parameters);
  • 1
    а сообщение об ошибке будет ???
  • 0
    pg_query () [function.pg-query]: Запрос не выполнен: ОШИБКА: синтаксическая ошибка в или около «A02249003192» ЛИНИЯ 1: ... entroid FROM pcn_kerngebiete ГДЕ id_cadast = 126A022490031 ... ^ in
Показать ещё 1 комментарий
Теги:

1 ответ

0

Вы должны избегать только значения, и вы должны указать значение текста:

$sql = "SELECT * FROM table WHERE id_cadast = '" . pg_escape_string($_GET['id_cadast']) . "'";
  • 0
    В этом случае это работает. Преимущество приведенной выше конструкции заключается в том, что я могу определять различные параметры и другие переменные, которые передаются в строку запроса. И в этом конкретном случае я не заставляю его работать, что кажется проблемой с правильной цитатой.
  • 0
    id_cadast - это, вероятно, текстовое поле. Так что запрос должен выглядеть WHERE id_cadast = '126A02249003192' . И вопрос реализации: "WHERE id_cadast = '" . $variable . "'"
Показать ещё 1 комментарий

Ещё вопросы

Сообщество Overcoder
Наверх
Меню