phpbar.de logo

Mailinglisten-Archive

AW: database handle
Archiv Mailingliste mysql-de

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

AW: database handle



Aloha,

> ----------
> Von: 	Marcel Tscherkasow[SMTP:marcel.tscherkasow_(at)_mail.uni-oldenburg.de]
> 
>    Und dieser dbhandle bleibt mir über die Subs nicht erhalten. Ich will 
> "dbhandle->quote($newlogin)" beim Erzeugen des SQl-Befehls ausführen. Und 
> hier meldet er, dass der dbhandle destroyd wurde ("Last Handle unknown or 
> destroyed".
> 
> Hier der ,glaub ich relevante, Code:
> my $dbhandle;
> 
Hier definierst du $dbhandle als lokale Variable,

> if ($login ne "" &&  $passwd ne "")
> {
> # Verbindung zur Datenbank herstellen
>     $dbhandle = dblogin($adminlogin, $adminpasswd) or die ;
> 
Hier wird sie dann nochmal zum Objekt gecastet (gott sei dank geht das in
Perl ;)
du haettest auch schreiben konenen my $dbhandle = dblogin....

> # bis hierhin geht alles gut
>     print start_form,
>           table({-align=>'center'},
> 		Tr(
> 		   td({-align=>'center'}, topage("Neuen User anlegen"))
> 		   )
> 		),
> 	  end_form;
> }
> 
> in einer folgenden Subroutine kommt dann das Quoting, aber da existiert
> der 
> DB-Handle schon nicht mehr.
> 
In den Subroutinen existieren GENERELL keine Variablen, die im Hauptprogramm
mit my $...   angelegt wurden.

Entweder: du laesst den ganzen use strict; my.... krams weg (was schnell ins
Auge
geht...) oder du übergibst deiner Subroutine das Handle, z.b.

tu_dies( $dbhandle, restliche parameter);


definieren tust du die Subroutine dann mit 

sub tu_dies {
   my $dbhandle = $_[0];   # Heisst jetzt gleich wie das im Hauptprogramm,
ist aber
			# nur hier in dieser Subroutine gültig (lokale
Variable)!
   my $zweiter_parameter = $_[1];
   ... usw
}

ODER:

sub tu_dies {
   my ( $dbhandle, $zweiter_parameter)  = _(at)__;   # Ohne gewähr ;-)
   ... usw
}

genauer stehts in perldoc perlsub , bei den meisten Distributionen
gibts auch eine perlsub.html mit dem gleichen Inhalt :-)

Grüße, Mathias


---
*** Weitere Infos zur Mailingliste und MySQL unter http://www.4t2.com/mysql 


Home | Main Index | Thread Index

php::bar PHP Wiki   -   Listenarchive