powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / PHP, Perl, Python [игнор отключен] [закрыт для гостей] / (PHP&FireBird) Запросы с параметрами
12 сообщений из 12, страница 1 из 1
(PHP&FireBird) Запросы с параметрами
    #32963594
DenisUA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Уважаемые!!!
Проблема состоит в следующем, вот запрос без параметров
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
$strconnect = 'localhost:D:\HelpDesk\DB\HelpDesk.GDB';
if (!($dbconnection=ibase_connect($strconnect, 'sysdba', 'masterkey')))
   die('Problem...: ' .  ibase_errmsg());

$sql  = 'select * from USERS';// where USERNAME='.$p_Login.' and PASS='.$p_password;
 print '<br>'.$sql;

 $result = ibase_query($dbconnection,$sql);

while ($row = ibase_fetch_row ($result))
   {
      echo '<br>'.$row[ 1 ];
   }

   ibase_free_result ($result);
   ibase_close($dbconnection);

все пучком...но как только я делаю тот же запрос с параметрами
$sql = 'select * from USERS where USERNAME='.$p_Login.' and PASS='.$p_password;

начинает выдавать ошибки следующего содержания
Warning: ibase_query() [function.ibase-query]: Dynamic SQL Error SQL error code = -206 Column unknown TEST in C:\WWW\Apache2\scripts\HelpDesk\Main.php on line 30

Warning: ibase_fetch_row(): supplied argument is not a valid Firebird/InterBase result resource in C:\WWW\Apache2\scripts\HelpDesk\Main.php on line 32

Warning: ibase_free_result(): supplied argument is not a valid Firebird/InterBase result resource in C:\WWW\Apache2\scripts\HelpDesk\Main.php on line 37

в чем может быть проблема или как правильно выполнять запросы с параметрами?
...
Рейтинг: 0 / 0
(PHP&FireBird) Запросы с параметрами
    #32963665
Фотография 4m@t!c
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Значения полей берутся в кавычки.
Код: plaintext
$sql = 'select * from USERS where USERNAME="'.$p_Login.'" and PASS="'.$p_password.'"';
Вообщем, RTFM
----------------------------------------
Артисты не приехали, приехали цыгане
...
Рейтинг: 0 / 0
(PHP&FireBird) Запросы с параметрами
    #32963699
DenisUA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
не проходят двойные кавычки...параметры получаеться надо брать в одинарные кавычки (пробовал в IBExperte)...как взять значения в одинарные кавычки?
...
Рейтинг: 0 / 0
(PHP&FireBird) Запросы с параметрами
    #32963710
DenisUA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
я уже пытался и предварительно собрать правильные параметр, то есть с кавычками с обеих сторон...вот именно кавычки и неполучаеться примастырить...
...
Рейтинг: 0 / 0
(PHP&FireBird) Запросы с параметрами
    #32963725
DenisUA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Спасибо что навели на мысль...уже сделал...
...
Рейтинг: 0 / 0
(PHP&FireBird) Запросы с параметрами
    #32963726
Фотография 4m@t!c
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Хм.. не помню уже, а разве Интенрбейсу не все равно одинарные или двойные???
Прослешить одинарные кавычки.
Код: plaintext
1.
$sql = 'select * from USERS where USERNAME=\''.$p_Login.'\' and PASS=\''.
$p_password.'\'';
Все равно RTFM...;)
----------------------------------------
Артисты не приехали, приехали цыгане
...
Рейтинг: 0 / 0
(PHP&FireBird) Запросы с параметрами
    #32963727
DocAl
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Кавычки следует экранировать обратным слешем (\')
А почему столь странное использование регистров?
По идее, в верхнем регистре пишутся SELECT, WHERE, а не названия полей...
Это не догма, конечно, но если вас волнует, насколько читабелен будет ваш код -- почему бы не придерживаться общепринятых соглашений?
...
Рейтинг: 0 / 0
(PHP&FireBird) Запросы с параметрами
    #32963742
Макс М.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
DenisUAя уже пытался и предварительно собрать правильные параметр, то есть с кавычками с обеих сторон...вот именно кавычки и неполучаеться примастырить...
во-первых в firebird-е можно использовать ibase_prepare + ibase_execute
во-вторых, даже если ты вручную формируешь запрос, какие проблемы с кавычками ? Или ты про экранирование не знаешь :
Код: plaintext
 $a = 'Д\'Артаньян'; 
...
Рейтинг: 0 / 0
(PHP&FireBird) Запросы с параметрами
    #32963747
DenisUA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Спасибо за наставление...учту в будущем...
...
Рейтинг: 0 / 0
(PHP&FireBird) Запросы с параметрами
    #32963903
DenisUA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
теперь знаю :)
...
Рейтинг: 0 / 0
(PHP&FireBird) Запросы с параметрами
    #32964982
SDN
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
SDN
Гость
4m@t!cХм.. не помню уже, а разве Интенрбейсу не все равно одинарные или двойные???

Не, совсем не всё равно :) В двойные берутся, например названия полей. Не помню, как там это по-научному звучит, но вот пример:

Код: plaintext
select SNAME || ' ' || FNAME || ' ' || PNAME "FULLNAME" from USERS

получим колонку FULLNAME со значениями типа 'Иванов Иван Иванович'

P.S. Я тоже пишу запросы с "перевёрнутым" регистром :) Дело привычки ;)
...
Рейтинг: 0 / 0
(PHP&FireBird) Запросы с параметрами
    #32970463
Denis Uskov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
В InterBase в двойные кавычки берутся поля, которые были созданы с регистрозависимостью, т.е. "MyField" и "myFielD" это два разных поля. Если в бд поля создавались по типу MyField без кавычек, то потом можно писать MyField и myFielD(без кавычек), и это одно и тоже поле.
------------------------
С уважением, Denis Uskov
...
Рейтинг: 0 / 0
12 сообщений из 12, страница 1 из 1
Форумы / PHP, Perl, Python [игнор отключен] [закрыт для гостей] / (PHP&FireBird) Запросы с параметрами
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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