Anthony Gorecki wrote:
> Hello,
> 
> I've been encountering an unusual string of errors while attempting to 
> retrieve information from a database using DBD-mysql-2.9007 and mysql-4.1.12. 
> The database in question is of type InnoDB. Below is an example:
> 
> #!/usr/bin/perl -w
> 
> use strict;
> use DBI;
> 
> my $db_conn = DBI->connect('DBI:mysql:infrastructure', 'system', 'readonly');
> if (!$db_conn) {
>     error('The program was unable to connect to the database.');
> }
> 
> $_ = $db_conn->selectrow_array("
>     SELECT [EMAIL PROTECTED] := (
>         SELECT user_id FROM users WHERE username = 'agorecki' LIMIT 1)
>     );
> ");
> 
> if (!defined($_)) {
>     $db_conn->disconnect();
>     error('It appears that the user account has disappeared since login '.
>         'time...'
>     );
> }
> 
> 
> The same query in MySQL will return the session variable, however DBD-mysql 
> returns undefined. Similarly, when I run:
> 
> SELECT type
> FROM svn_access
> WHERE 'test' REGEXP REPLACE(path_regex, '\$USERNAME\$', 'agorecki') = 1
>     AND (user_id = @user_id
>         OR group_id = ANY (SELECT group_id FROM group_memberships WHERE
>             user_id = @user_id)
>         OR (user_id IS NULL AND group_id IS NULL)
>     )
> ORDER BY type DESC LIMIT 1;
> 
> 
> through selectrow_array (properly encoded for use in a PERL script), I also 
> receive an undefined result. The above query correctly returns one row when 
> input into a MySQL console and executed.
> 
> The only thing that actually managed to execute and return a value 
> successfully was:
> $_ = $db_conn->selectrow_array("SELECT 'hello';");
> 
> Any thoughts?
> 
> 

Have you checked the DBI error status?  See the parts about $DBI::err, 
$DBI::errstr, and RaiseError here:

http://search.cpan.org/~timb/DBI-1.48/DBI.pm

Zac
-- 
gentoo-dev@gentoo.org mailing list

Reply via email to