Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Perl: разработка для Web > запрос к таблице mysql


Автор: Rezzonans 10.11.2005, 01:10
Народ, такая проблема:
Есть база данных mysql с именем prb. В ней одна таблица с именем one, в которой два столбца name и birth. Пытаюсь сделать запрос и вывеси на экран содержимое таблицы и никак. Компилятор говорит нечто вроде:

Цитата

DBD::mysql:st bind_columns failed: Statement has no result columns to bind (perhaps you need to succsessfully call ececute first) at Untitled line 18


Код

#!perl -w

use CGI::Carp qw(fatalsToBrowser);
use DBI;
print "Content-type: text/html\n\n";

$db = "DBI:mysql:prb:localhost";
$user = "root";
$pwd = "html40";

my $dbh = DBI->connect($db, $user, $pwd);

my $query = "SELECT name, birth FROM one";
my $sth = $dbh->prepare($query);

my ($name, $date);

$sth->bind_columns(undef, \($name, $date));

$sth->execute();

while($sth->fetch()){
       print "Имя: $name<br> Дата: $date<br>";
       }



$dbh->disconnect();


А вот результат работы (в таблице 2 строки):

Цитата

Имя:
Дата:
Имя:
Дата:

Автор: sharq 11.11.2005, 22:58
Rezzonans в таблице записи есть? smile

Цитата(Rezzonans @ 10.11.2005, 02:10)
my ($name, $date);
$sth->bind_columns(undef, \($name, $date));
$sth->execute();
while($sth->fetch()){
      print "Имя: $name<br> Дата: $date<br>";
      }

Ты где это такое взял? Сам придумал? smile

perldoc DBI или на русском http://perldoc.narod.ru/perl-dbi_ref.pdf.

smile

Автор: Alexzander 12.11.2005, 16:51
Код

  require DBI;
  my( $database, $user, $password ) = ( 'database','database_user','database_pass');

 my $dbh = DBI->connect("DBI:mysql:database=$database;host=localhost",$user, $password) || die $DBI::errstr;

  my $qry = "SELECT name, birth FROM one";

  my $result = $or_dbh->prepare($qry);
  $result->execute() || die $DBI::errstr; 
  
  while( my $ln = $result->fetchrow_hashref() )
  {
    print "Имя: $ln->{'name'}<br> Дата: $ln->{'birth'}<br>"
  }

Автор: Rezzonans 13.11.2005, 15:16
sharq кстати взял из той же документации на perldoc.narod.ru. Спасибо, Alexzander, но эта хренатень опять не работает. Вот что теперь она мне выдаёт:

Цитата

Software error:
Can't call method "prepare" on an undefined value at Untitled line 13.

For help, please send mail to this site's webmaster, giving this error message and the time and date of the error.

Автор: Rezzonans 13.11.2005, 15:45
аа, заработала. Там ошибка в коде!

Автор: Alexzander 14.11.2005, 14:03
Да.. очепятка. Вместо $or_dbh надо написать $dbh (8-я строка).

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)