Автор Тема: SQl запрос в базу MySQL  (Прочитано 5679 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн Timofey

  • Фанат форума
  • Постоялец
  • ***
  • Сообщений: 108
  • +0/-0
  • 0
    • Просмотр профиля
SQl запрос в базу MySQL
« : 03 Мая 2001, 11:06:44 »
pole1 pole2
                           q 1
                           w 2
                           e 3
                           r 4

                           как узнать какой букве какая цифра соответствует

                           use DBI;

                           $dbdriver = "mysql";

                           $hostname = "localhost";
                           $port = "3306";
                           $username = "qqqq";
                           $passwordb = "qqqq";
                           $basename = "Worktime";
                           $tablename = "www";
                           print "Content-type: text/html

";
                           $dbh =
                           DBI->connect("dbi:$dbdriver:$basename:$hostname:$port","$username","$passwordb");

                           $sqlstatement = "SELECT pole1,pole2 FROM $tablename" WHERE pole1=\'w\';
                           $sth = $dbh->prepare($sqlstatement);
                           $sth->execute || die "Невозможно выполнить SQL-запрос.";
                           while (@row=$sth->fetchrow_array) {print @row
;}

                           print "
";

                           при таком запросе не работает,хотя другие запросы работают,типа $sqlstatement =
                           "SELECT pole1,pole2 FROM $tablename"; и т.д. в чем беда?

Оффлайн Chs

  • Perl программер
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 1108
  • +0/-0
  • 2
    • Просмотр профиля
    • http://chs.now.at/
SQl запрос в базу MySQL
« Ответ #1 : 03 Мая 2001, 16:03:08 »
Цитировать
Timofey (03-05-2001 11:06):
                           $sqlstatement = "SELECT pole1,pole2 FROM $tablename" WHERE pole1=\'w\';
                           $sth = $dbh->prepare($sqlstatement);
С кавычками поаккуратнее.:))
$sqlstatement = "SELECT pole1,pole2 FROM $tablename WHERE pole1=?";
$sth = $dbh->prepare($sqlstatement);
$sth -> execute(\'w\');
Далее по тексту.:))
2B OR NOT 2B = FF

Оффлайн vlad

  • Завсегдатай
  • Новичок
  • *
  • Сообщений: 46
  • +0/-0
  • 0
    • Просмотр профиля
    • http://www.deltacom.co.il
SQl запрос в базу MySQL
« Ответ #2 : 03 Мая 2001, 16:03:25 »
Цитировать
Timofey (03-05-2001 11:06):
pole1 pole2
                           q 1
                           w 2
                           e 3
                           r 4

                           как узнать какой букве какая цифра соответствует

                           use DBI;

                           $dbdriver = "mysql";

                           $hostname = "localhost";
                           $port = "3306";
                           $username = "qqqq";
                           $passwordb = "qqqq";
                           $basename = "Worktime";
                           $tablename = "www";
                           print "Content-type: text/html

";
                           $dbh =
                           DBI->connect("dbi:$dbdriver:$basename:$hostname:$port","$username","$passwordb");

                           $sqlstatement = "SELECT pole1,pole2 FROM $tablename" WHERE pole1=\'w\';
                           $sth = $dbh->prepare($sqlstatement);
                           $sth->execute || die "Невозможно выполнить SQL-запрос.";
                           while (@row=$sth->fetchrow_array) {print @row
;}

                           print "
";

                           при таком запросе не работает,хотя другие запросы работают,типа $sqlstatement =
                           "SELECT pole1,pole2 FROM $tablename"; и т.д. в чем беда?

A куда ты вставил выражение Where. ?

должно быть :

$sqlstatement = "SELECT pole1,pole2 FROM $tablename  WHERE pole1=\'w\'";

Для справки скачай мою книгу по SQL, PL/SQL ( справочник ) :
  http://www.deltacom.co.il/rus/document/oracle_ref.htm

Оффлайн cj

  • Завсегдатай
  • Новичок
  • *
  • Сообщений: 48
  • +0/-0
  • 0
    • Просмотр профиля
    • http://netcode.lgg.ru/
SQl запрос в базу MySQL
« Ответ #3 : 04 Мая 2001, 09:20:01 »
Цитировать
vlad (03-05-2001 16:03):
Цитировать
Timofey (03-05-2001 11:06):
pole1 pole2
                           q 1
                           w 2
                           e 3
                           r 4

                           как узнать какой букве какая цифра соответствует

                           use DBI;

                           $dbdriver = "mysql";

                           $hostname = "localhost";
                           $port = "3306";
                           $username = "qqqq";
                           $passwordb = "qqqq";
                           $basename = "Worktime";
                           $tablename = "www";
                           print "Content-type: text/html

";
                           $dbh =
                           DBI->connect("dbi:$dbdriver:$basename:$hostname:$port","$username","$passwordb");

                           $sqlstatement = "SELECT pole1,pole2 FROM $tablename" WHERE pole1=\'w\';
                           $sth = $dbh->prepare($sqlstatement);
                           $sth->execute || die "Невозможно выполнить SQL-запрос.";
                           while (@row=$sth->fetchrow_array) {print @row
;}

                           print "
";

                           при таком запросе не работает,хотя другие запросы работают,типа $sqlstatement =
                           "SELECT pole1,pole2 FROM $tablename"; и т.д. в чем беда?

A куда ты вставил выражение Where. ?

должно быть :

$sqlstatement = "SELECT pole1,pole2 FROM $tablename  WHERE pole1=\'w\'";

Для справки скачай мою книгу по SQL, PL/SQL ( справочник ) :
  http://www.deltacom.co.il/rus/document/oracle_ref.htm

Извини за выражение, но ты ламернул :-)
Это называется прибиндить параметр.

2Chs: это делается так
$sth->bind_param(1, \'w\');
$sth->execute();

:-)
Here comes the pain...
http://netcode.lgg.ru/

Оффлайн Chs

  • Perl программер
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 1108
  • +0/-0
  • 2
    • Просмотр профиля
    • http://chs.now.at/
SQl запрос в базу MySQL
« Ответ #4 : 04 Мая 2001, 21:06:45 »
Цитировать
cj (04-05-2001 09:20):

Извини за выражение, но ты ламернул :-)
Это называется прибиндить параметр.

2Chs: это делается так
$sth->bind_param(1, \'w\');
$sth->execute();

:-)
Это не я ламернул, а ты лажанулся.:)
Доки надо внимательнее читать, и по execute в частности.
If any arguments are given, then execute will effectively call
bind_param for each value before executing the statement.
Values bound in this way are usually treated as SQL_VARCHAR types
unless the driver can determine the correct type (which is rare), or unless
bind_param (or bind_param_inout) has already been used to specify the type.

P.S.: Не наезжай если не уверен.:)
2B OR NOT 2B = FF

Оффлайн cj

  • Завсегдатай
  • Новичок
  • *
  • Сообщений: 48
  • +0/-0
  • 0
    • Просмотр профиля
    • http://netcode.lgg.ru/
SQl запрос в базу MySQL
« Ответ #5 : 05 Мая 2001, 09:16:56 »
Цитировать
Chs (04-05-2001 21:30):
Цитировать
cj (04-05-2001 09:20):

Извини за выражение, но ты ламернул :-)
Это называется прибиндить параметр.

2Chs: это делается так
$sth->bind_param(1, \'w\');
$sth->execute();

:-)
Это не я ламернул, а ты лажанулся.:)
Доки надо внимательнее читать, и по execute в частности.

Нет, это ты лажанулся :-) Хотя бы потому, что я не тебе отвечал. :-)

Цитировать
If any arguments are given, then execute will effectively call
bind_param for each value before executing the statement.
Values bound in this way are usually treated as SQL_VARCHAR types
unless the driver can determine the correct type (which is rare), or unless
bind_param (or bind_param_inout) has already been used to specify the type.

P.S.: Не наезжай если не уверен.:)

Верно. Но я точно знаю, что есть версии DBI, который впадают в прострацию при наличии доп. аргументов. :-)
Here comes the pain...
http://netcode.lgg.ru/

Оффлайн Chs

  • Perl программер
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 1108
  • +0/-0
  • 2
    • Просмотр профиля
    • http://chs.now.at/
SQl запрос в базу MySQL
« Ответ #6 : 05 Мая 2001, 14:45:22 »
Цитировать
cj (05-05-2001 09:16):
Верно. Но я точно знаю, что есть версии DBI, который впадают в прострацию при наличии доп. аргументов. :-)
Приводи версии - отвечать надо агрументированно.:))
2B OR NOT 2B = FF

Оффлайн vlad

  • Завсегдатай
  • Новичок
  • *
  • Сообщений: 46
  • +0/-0
  • 0
    • Просмотр профиля
    • http://www.deltacom.co.il
SQl запрос в базу MySQL
« Ответ #7 : 06 Мая 2001, 10:28:41 »
Цитировать
Chs (04-05-2001 21:30):
Цитировать
cj (04-05-2001 09:20):

Извини за выражение, но ты ламернул :-)
Это называется прибиндить параметр.

2Chs: это делается так
$sth->bind_param(1, \'w\');
$sth->execute();


То, что ты написал в динамик-SQL не вписывается ни какой стороной, так что не выступай. B выражении SQL нет параметра "?" ( знак вопрос )
Так что ты "прибиндиваеш" параметр на весу?

Cлушать надо ухом а не брюхом или говорить надо то, что думаеш, a если не думаеш - то не говори.

Оффлайн cj

  • Завсегдатай
  • Новичок
  • *
  • Сообщений: 48
  • +0/-0
  • 0
    • Просмотр профиля
    • http://netcode.lgg.ru/
SQl запрос в базу MySQL
« Ответ #8 : 06 Мая 2001, 10:47:16 »
Цитировать
Chs (05-05-2001 14:45):
Цитировать
cj (05-05-2001 09:16):
Верно. Но я точно знаю, что есть версии DBI, который впадают в прострацию при наличии доп. аргументов. :-)
Приводи версии - отвечать надо агрументированно.:))

Отмазон гнилой, но - не помню. Просто однажды наступив на грабли, я стараюсь больше так не делать.
Here comes the pain...
http://netcode.lgg.ru/

Оффлайн cj

  • Завсегдатай
  • Новичок
  • *
  • Сообщений: 48
  • +0/-0
  • 0
    • Просмотр профиля
    • http://netcode.lgg.ru/
SQl запрос в базу MySQL
« Ответ #9 : 06 Мая 2001, 10:51:24 »
Цитировать
vlad (06-05-2001 10:28):
Цитировать
Chs (04-05-2001 21:30):
Цитировать
cj (04-05-2001 09:20):

Извини за выражение, но ты ламернул :-)
Это называется прибиндить параметр.

2Chs: это делается так
$sth->bind_param(1, \'w\');
$sth->execute();


То, что ты написал в динамик-SQL не вписывается ни какой стороной, так что не выступай. B выражении SQL нет параметра "?" ( знак вопрос )
Так что ты "прибиндиваеш" параметр на весу?

Cлушать надо ухом а не брюхом или говорить надо то, что думаеш, a если не думаеш - то не говори.

Смотри от сознания собственной полноценности не лопни. А заодно почитай что-нить о парсинге SQL запросов и о кэшировании оных.
Here comes the pain...
http://netcode.lgg.ru/

Оффлайн vlad

  • Завсегдатай
  • Новичок
  • *
  • Сообщений: 46
  • +0/-0
  • 0
    • Просмотр профиля
    • http://www.deltacom.co.il
SQl запрос в базу MySQL
« Ответ #10 : 06 Мая 2001, 11:04:34 »
Цитировать
cj (06-05-2001 10:51):
Цитировать
vlad (06-05-2001 10:28):
Цитировать
Chs (04-05-2001 21:30):
Цитировать
cj (04-05-2001 09:20):

Извини за выражение, но ты ламернул :-)
Это называется прибиндить параметр.

2Chs: это делается так
$sth->bind_param(1, \'w\');
$sth->execute();


То, что ты написал в динамик-SQL не вписывается ни какой стороной, так что не выступай. B выражении SQL нет параметра "?" ( знак вопрос )
Так что ты "прибиндиваеш" параметр на весу?

Cлушать надо ухом а не брюхом или говорить надо то, что думаеш, a если не думаеш - то не говори.

Смотри от сознания собственной полноценности не лопни. А заодно почитай что-нить о парсинге SQL запросов и о кэшировании оных.


Что, из области - "сам дурак"
Для справки скачай мою книгу по SQL, PL/SQL ( справочник ) :
http://www.deltacom.co.il/rus/document/oracle_ref.htm

Так в чем ошибка ?

Оффлайн Chs

  • Perl программер
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 1108
  • +0/-0
  • 2
    • Просмотр профиля
    • http://chs.now.at/
SQl запрос в базу MySQL
« Ответ #11 : 06 Мая 2001, 21:00:51 »
Цитировать
cj (06-05-2001 10:47):

Отмазон гнилой, но - не помню. Просто однажды наступив на грабли, я стараюсь больше так не делать.
Точно, гнилой - execute с параметрами появился в версии DBI 0.86 вместе с bind_param, а DBI в то время был еще "альфа". :))
2B OR NOT 2B = FF

Оффлайн cj

  • Завсегдатай
  • Новичок
  • *
  • Сообщений: 48
  • +0/-0
  • 0
    • Просмотр профиля
    • http://netcode.lgg.ru/
SQl запрос в базу MySQL
« Ответ #12 : 07 Мая 2001, 06:51:16 »
Цитировать
vlad (06-05-2001 11:04):

Что, из области - "сам дурак"
Для справки скачай мою книгу по SQL, PL/SQL ( справочник ) :
http://www.deltacom.co.il/rus/document/oracle_ref.htm

Так в чем ошибка ?

Чья? Ты может хочешь убедить меня, что написанная мной или Chs конструкция ошибочна? Или что?
Here comes the pain...
http://netcode.lgg.ru/

Оффлайн Timofey

  • Фанат форума
  • Постоялец
  • ***
  • Сообщений: 108
  • +0/-0
  • 0
    • Просмотр профиля
SQl запрос в базу MySQL
« Ответ #13 : 07 Мая 2001, 15:31:21 »
Народ, всем спасибо за помощь, моя ошибка была в занесении в базу, поэтому запрос и не работал, сейчас все нормально работает

$sqlstatement = "SELECT  pole2 FROM $tablename WHERE pole1=\'$usvd\'";
$sth = $dbh->prepare($sqlstatement);
$sth->execute || die "SQL-error.";

 

Sitemap 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28