Hola,
Tengo un problema con los die() a la hora de ejecutar sentencias erróneas en bases de datos; el caso es que mi código de prueba es el siguiente:
Using perl Syntax Highlighting
use DBI;
use ConnectDB;
use strict;
use warnings;
use diagnostics;
db_exists();
sub db_exists{
my $dbc = createdb->connect();
my @status = $dbc->do ('USE IDS1') or die "Couldn't execute statement: ";
print "@status\n";
}
Coloreado en 0.003 segundos, usando
GeSHi 1.0.8.4
Evidentemente la base de datos IDS1 no existe, que es el que estoy probando. La salida que me da es:
Using text Syntax Highlighting
./db_exists.pl
Uncaught exception from user code:
DBD::mysql::db do failed: Unknown database 'IDS1' at ./db_exists.pl line 23.
at ./db_exists.pl line 23
main::db_exists() called at ./db_exists.pl line 18
Coloreado en 0.000 segundos, usando
GeSHi 1.0.8.4
y tendría que ser "Couldn't execute statement: ". ¿Alguien sabe por qué? Es raro ya que he probado el die() en otras circunstancias que no son en BD y me funcionan perfectamente.
¡Gracias de nuevo por vuestra colaboración!