hotti: DBI::errstr fetch() without execute()

Beitrag lesen

Nun ist es so, dass ein create table-Statement oder ein drop table-Statement zwar ausgeführt wird, aber DBI einen $DBI::errstr wirft, siehe Betreff. Was bedeutet dieser $DBI::errstr?

Vermutlich weil ein selectall_arrayref nicht nur ein execute ausführt, sondern auch versucht die Daten zu lesen, die es aber bei einem DROP oder CREATE TABLE nicht gibt.

Ja, mein Lieber, das ist richtig. Es geht eigentlich eher um die Programmiertechnik, diese verschiedenen 'Arten' von Statements so zu handeln, dass stets ein stabiler Zustand des Scripts sichergestellt ist mit unmissverständlichen Ausgaben an den DAU ;)

Also, ich habs hinbekommen mit 'RTFM', und da steht was von '0E0' für genau diesen Fall, dass keine Rows zu erwarten sind. Habe fertisch,

Grüße aus Oppenheim,
Hotti

=== Perl My Admin =============
SQL an Host: rolfrost.de
Mehrzeilige Eingabe, senden mit ^Z in neuer Zeile

show tables
^Z
DB-Verbindung OK
Aktion: sql
Ergebnis: 6 Rows

book
log
moon
onkz
unicode
vendors

Script beenden mit ^Z oder neues mehrzeiliges Statement eingeben und senden mit
^Z in neuer Zeile

create table test(name varchar(1))
^Z
DB-Verbindung OK
Aktion: sql

Statement OK

Script beenden mit ^Z oder neues mehrzeiliges Statement eingeben und senden mit
^Z in neuer Zeile

drop table test
^Z
DB-Verbindung OK
Aktion: sql

Statement OK

Script beenden mit ^Z oder neues mehrzeiliges Statement eingeben und senden mit
^Z in neuer Zeile

drop table test
^Z
DB-Verbindung OK
Aktion: sql

Fehler: Unknown table 'test'

Script beenden mit ^Z oder neues mehrzeiliges Statement eingeben und senden mit
^Z in neuer Zeile