Thread DBI::db disconnect invalidates statement handle (10 answers)
Opened by iche at 2012-04-26 16:31

GwenDragon
 2012-04-26 18:53
#157875 #157875
User since
2005-01-17
14806 Artikel
Admin1
[Homepage]
user image
Code (perl): (dl )
&mysql_connect($db) 

$db wird beim connect nicht gesetzt. Auch wenn du das glaubst, dass sowas automagisch passiert.

Mit
Code (perl): (dl )
1
2
3
4
sub mysql_connect {
%attr = ();
my $db = DBI -> connect("DBI:mysql:mysql_compression=1:$databasename:$dbserver:$dbport", "$dbusername", "$dbpassword", \%attr);
return $db;
(ich nehme mal an du vergaßest ein }) erstellst du zwar ein Datenbankhandle nach einem connect an die DB, setzt es aber nirgendwo im Hauptprogramm, weil es nicht außerhalb zugewiesen wird.

Und du hast ganz lustige Variablenbezeichner.
$dbh = Statementhandle (wo ich eher $sth als Name erwartet hätte)
$db = Databasehandle (wo ich eher $dbh erwartet hätte)

Um später mal schneller zu erkennen was was macht, würde ich das so schreiben:
$database_handle
$statement_handle
Aber das bleibt dir überlassen wie lesbar du programmierst. ;)
Last edited: 2012-04-26 18:55:10 +0200 (CEST)

View full thread DBI::db disconnect invalidates statement handle