Re:

Поиск
Список
Период
Сортировка
От Michael Fuhr
Тема Re:
Дата
Msg-id 20031218075321.A19176@quality.qadas.com
обсуждение исходный текст
Ответ на  ("Mace, Richard" <richard.mace@Lorien.co.uk>)
Список pgsql-novice
On Thu, Dec 18, 2003 at 08:40:15AM -0000, Mace, Richard wrote:
> I have one table containing a respondents contact details, e.g. name,
> address fields, telephone numbers, etc.  Some of the telephone number
> cells are blank/ empty. When I query in psql, using "SELECT telephone from
> sample" the return shows all columns, including the blanks (as expected).
>
> Using the Perl DBI I try to pull out telephone again and bind the result
> to a pre-defined variable $telephone.  e.g.
>
> $sth = $dbh->prepare("SELECT telephone from sample");
> $sth->execute();
> $sth->bind_columns(undef, \$telephone);

You shouldn't need undef as the first argument to bind_columns().  The DBI
doc says, "For compatibility with old scripts, the first parameter will
be ignored if it is 'undef' or a hash reference."

> while ( $sth->fetch ) {
>     print STDERR "$telephone\n";
> }
> $sth->finish;
>
> This fails with "Statement has no result to bind(perhaps you need to
> call execute first)"

This typically happens if execute() failed, in which case you should see
the reason if $dbh has the RaiseError or PrintError attributes turned on.
You could also do this:

$sth->execute() or die "execute failed: ", $dbh->errstr;

execute() could fail if the SQL statement has a syntax error or if one
of the referenced columns or tables doesn't exist.  Are you sure the
column and table names are spelled correctly?

> This code works fine for a field that is always populated e.g. name in
> place of telephone in line 1.
>
> Is my code fatally flawed or do I need to deal with the blank cells
> differently when the data is written to the database in  the beginning,
> or before the bind. Any help greatly appreciated.

DBI should return undef for NULL values; aside from checking for undef
so you don't get "Use of uninitialized value" warnings, you shouldn't
need to do anything special.

--
Michael Fuhr
http://www.fuhr.org/~mfuhr/

В списке pgsql-novice по дате отправления:

Предыдущее
От: Oliver Elphick
Дата:
Сообщение: Re:
Следующее
От: Tom Lane
Дата:
Сообщение: Re: