Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / PHP, Perl, Python [игнор отключен] [закрыт для гостей] / (PHP&FireBird) Запросы с параметрами / 12 сообщений из 12, страница 1 из 1
16.03.2005, 15:01
    #32963594
DenisUA
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
(PHP&FireBird) Запросы с параметрами
Уважаемые!!!
Проблема состоит в следующем, вот запрос без параметров
Код: 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
16.03.2005, 15:20
    #32963665
4m@t!c
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
(PHP&FireBird) Запросы с параметрами
Значения полей берутся в кавычки.
Код: plaintext
$sql = 'select * from USERS where USERNAME="'.$p_Login.'" and PASS="'.$p_password.'"';
Вообщем, RTFM
----------------------------------------
Артисты не приехали, приехали цыгане
...
Рейтинг: 0 / 0
16.03.2005, 15:29
    #32963699
DenisUA
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
(PHP&FireBird) Запросы с параметрами
не проходят двойные кавычки...параметры получаеться надо брать в одинарные кавычки (пробовал в IBExperte)...как взять значения в одинарные кавычки?
...
Рейтинг: 0 / 0
16.03.2005, 15:33
    #32963710
DenisUA
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
(PHP&FireBird) Запросы с параметрами
я уже пытался и предварительно собрать правильные параметр, то есть с кавычками с обеих сторон...вот именно кавычки и неполучаеться примастырить...
...
Рейтинг: 0 / 0
16.03.2005, 15:37
    #32963725
DenisUA
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
(PHP&FireBird) Запросы с параметрами
Спасибо что навели на мысль...уже сделал...
...
Рейтинг: 0 / 0
16.03.2005, 15:37
    #32963726
4m@t!c
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
(PHP&FireBird) Запросы с параметрами
Хм.. не помню уже, а разве Интенрбейсу не все равно одинарные или двойные???
Прослешить одинарные кавычки.
Код: plaintext
1.
$sql = 'select * from USERS where USERNAME=\''.$p_Login.'\' and PASS=\''.
$p_password.'\'';
Все равно RTFM...;)
----------------------------------------
Артисты не приехали, приехали цыгане
...
Рейтинг: 0 / 0
16.03.2005, 15:37
    #32963727
DocAl
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
(PHP&FireBird) Запросы с параметрами
Кавычки следует экранировать обратным слешем (\')
А почему столь странное использование регистров?
По идее, в верхнем регистре пишутся SELECT, WHERE, а не названия полей...
Это не догма, конечно, но если вас волнует, насколько читабелен будет ваш код -- почему бы не придерживаться общепринятых соглашений?
...
Рейтинг: 0 / 0
16.03.2005, 15:40
    #32963742
Макс М.
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
(PHP&FireBird) Запросы с параметрами
DenisUAя уже пытался и предварительно собрать правильные параметр, то есть с кавычками с обеих сторон...вот именно кавычки и неполучаеться примастырить...
во-первых в firebird-е можно использовать ibase_prepare + ibase_execute
во-вторых, даже если ты вручную формируешь запрос, какие проблемы с кавычками ? Или ты про экранирование не знаешь :
Код: plaintext
 $a = 'Д\'Артаньян'; 
...
Рейтинг: 0 / 0
16.03.2005, 15:41
    #32963747
DenisUA
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
(PHP&FireBird) Запросы с параметрами
Спасибо за наставление...учту в будущем...
...
Рейтинг: 0 / 0
16.03.2005, 16:12
    #32963903
DenisUA
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
(PHP&FireBird) Запросы с параметрами
теперь знаю :)
...
Рейтинг: 0 / 0
17.03.2005, 09:46
    #32964982
SDN
SDN
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
(PHP&FireBird) Запросы с параметрами
4m@t!cХм.. не помню уже, а разве Интенрбейсу не все равно одинарные или двойные???

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

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

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

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


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