Schrift
[thread]12987[/thread]

Newbie -Keine Ausgabe bei mysql-query (Seite 5)

Leser: 2


<< |< 1 2 3 4 5 6 7 >| >> 63 Einträge, 7 Seiten
pktm
 2009-01-15 17:18
#118027 #118027
User since
2003-08-07
2921 Artikel
BenutzerIn
[Homepage]
user image
Struppi+2009-01-15 14:13:45--
deletemast+2009-01-15 13:50:10--
ich verstehe nur nicht, warum ein script aus einem "Lehrbuch" nicht funktioniert,....

Da kann ich mir jetzt eine Bemerkung nicht verkneifen, Data Becker Bücher haben einen schlechten Ruf, ich kenn deines nicht und hab seit den 80'ern auch keines mehr in den Händen gehalten. Aber evtl. ist der Ruf ja begründet?


Das kann ich bestätogen. Es gibt aber auch für andere Bücher keine Garantie auf 100% Korrektheit. Ich hab mal ein ganzes Shopsystem aus einem Buch übernommen, um hinterher festzustellen, dass die was beim Session-Handling falsch gemacht haben. Und bis ich das gefunden hatte...

Zu deinem Skript, dass keine Ausgabe liefert: das wurde bereits erläutert. In dem Array wird wohl einfach nichts drin stehen. Du kannst dir die Länge eines Arrays auch ausgeben lassen:
Code: (dl )
1
2
3
4
5
6
7
8
9
10
#!C:/Perl/bin/perl.exe -w
# dbi3.pl vorhandene Datenquellen
use DBI;
print "Content-type: text/html\n\n";
my $driver = "mysql";
my @sources = DBI ->data_sources($driver);
print "vorhandene Datenquellen (insgesamt " . scalar( @sources ) . "):<br />";
foreach my $s (@sources) {
print "$s<br>";
}
http://www.intergastro-service.de (mein erstes CMS :) )
deletemast
 2009-01-15 17:24
#118028 #118028
User since
2009-01-14
23 Artikel
BenutzerIn
[default_avatar]
Also nach dem Script von nepos erhalte ich folgende Ausgabe:
vorhandene Datenquellen:
DBI:CSV:f_dir=.install_driver(Oracle) failed: Can't load 'C:/Perl/lib/auto/DBD/Oracle/Oracle.dll' for module DBD::Oracle: load_file:///Das angegebene Modul wurde nicht gefunden at C:/Perl/lib/DynaLoader.pm line 201. at (eval 18) line 3 Compilation failed in require at (eval 18) line 3. Perhaps a required shared library or dll isn't installed where expected at c:\inetpub\wwwroot\cgi-bin\dbi3.pl line 11 DBI:DBM:f_dir=.dbi:ExampleP:dir=.DBI:File:f_dir=.


Habe jetzt noch ein paar Packages nachinstalliert...

Vielleicht könnt ihr mir ja ein Tut oder hilfreiches Buch empfehlen?
Als ich mit C# beschäftigt habe fand ich es hilfreich, daß einige Zeilen Kommentiert wurden, gerade als Newbie hilft dies zur Orientierung, was welche Funktionen mit welchen Parametern eigentlich bewirken.
deletemast
 2009-01-15 17:42
#118030 #118030
User since
2009-01-14
23 Artikel
BenutzerIn
[default_avatar]
Habe mir gerade mal den Perl-Verzeichnisbaum angesehen wegen der Meldung:
Can't locate DBD.pm in @INC (@INC contains: C:/Perl/site/lib C:/Perl/lib .)
Ich habe unter C:\Perl\lib\DBD
unter anderem die Verzeichnisse:
mit den Unterverzeichnissen: Gofer, ODBC, Oracle und verschiedene *.pm-Dateien.
Weiterhin das Verzeichnis: DBI
mit den Unterverzeichnissen: Const, DBD, Gofer, ProfileDumper, SQL, Util
in dem DBI-Verzeiuchnis ist auch die Datei DBD.pm
weiterhin habe ich aber auch unter: C:\Perl\site\lib\DBD\
die Verzeichnisse: ADO, Gofer, mysql
auch hier liegt unter anderem die Datei: DBD.pm
und unter C:\Perl\site\lib\DBI\
die Verzeichnisse: Const, DBD, Format, Gofer, ProfileDumper, Shell, SQL, Util
auch hier liegt unter anderem die Datei: DBD.pm

warum erscheint in der Fehlermeldung:
Can't locate DBD.pm in @INC (@INC contains: C:/Perl/site/lib C:/Perl/lib .)
also wie ihr seht, sehe ich mir die Meldungen schon an und versuche Abhilfe zu schaffen, aber ich war nicht erfolgreich.
Struppi
 2009-01-15 18:03
#118032 #118032
User since
2006-02-17
628 Artikel
BenutzerIn
[Homepage]
user image
Hast du eigentlich überhaupt einen mysql Server auf dem System?
Und was hast du den nicht an dem was nepos gepostet hat verstanden?

Ich kann es noch mal zeigen:
Quote
Note that many drivers have no way of knowing what data sources might be available for it. These drivers
return an empty or incomplete list or may require driver-specific attributes.
deletemast
 2009-01-15 18:21
#118034 #118034
User since
2009-01-14
23 Artikel
BenutzerIn
[default_avatar]
Siehe Beitrag 28!
Hier hatte ich geschrieben, daß meine SQL-Query funktioniert
Das setzt einen laufenden mysql-server vorraus.
Es existiert logischerweise auch eine Datenbank mit mindestens einer Tabelle, in der auch Daten enthalten sind.
Genau deshalb verstehe ich nicht, daß mir keine Datenquellen angezeigt werden.
Struppi
 2009-01-15 18:33
#118038 #118038
User since
2006-02-17
628 Artikel
BenutzerIn
[Homepage]
user image
Dann übersetze ich mal
Beachte das viele Treiber keinen weg kennen um herauszufinden welche Datenquellen eventuell Verfügbar sind. Diese Treiber geben eine leere oder unvollständige Liste zurück oder benötigen treiberspezifische Attribute.

Kurz, mit mysql bekommst du kein Ergebnis
nepos
 2009-01-15 18:58
#118039 #118039
User since
2005-08-17
1420 Artikel
BenutzerIn
[Homepage] [default_avatar]
Versuch mal das hier:
Code (perl): (dl )
my @sources = DBI->data_sources("mysql",{"host" => $host, "port" => $port});

$host und $port musst du halt entsprechend auf die Werte setzen, wo auch der Mysql-Server lauscht.
Z.B. 127.0.0.1 und 3306

Lies dir auch mal die Doku zu CPAN:DBD::mysql durch! Darin werden die Spezialitäten des Mysql-Treibers beschrieben. DBI ist ja nur die allgemeine Schnittstelle.
deletemast
 2009-01-15 19:35
#118040 #118040
User since
2009-01-14
23 Artikel
BenutzerIn
[default_avatar]
Hallo nepos, ich habe von der verlinkten Seite mal ein Example ausprobiert
und es funktioniert!
Also lesen aus DB klappt,
anlegen, schreiben in db-table klappt auch
ich verstehe immer noch nicht, warum mir trotzdem keine Datenquellen angezeigt werden.
für den Code:
Code (perl): (dl )
1
2
3
4
5
6
7
8
9
10
11
12
13
14
#!C:/Perl/bin/perl.exe -w
# dbi3.pl vorhandene Datenquellen
use DBI;
print "Content-type: text/html\n\n";
my $dbh = DBI->connect("DBI:mysql:database=adressen;host=localhost",
        "root", "",
        {'RaiseError' => 1});
my @sources = DBI->data_sources("mysql",{"localhost" => $host, "3306" => $port});
@drivers = DBI->available_drivers;
print "vorhandene Datenquellen:<br>";
for (@drivers)
        {
                print join("\n", DBI->data_sources($_));
        }

erhalte ich wieder folgende Ausgabe:
vorhandene Datenquellen:
DBI:CSV:f_dir=.install_driver(Oracle) failed: Can't load 'C:/Perl/lib/auto/DBD/Oracle/Oracle.dll' for module DBD::Oracle: load_file:///Das angegebene Modul wurde nicht gefunden at C:/Perl/lib/DynaLoader.pm line 201, line 275. at (eval 32) line 3 Compilation failed in require at (eval 32) line 3, line 275. Perhaps a required shared library or dll isn't installed where expected at c:\inetpub\wwwroot\cgi-bin\dbi3.pl line 18 DBI:DBM:f_dir=.dbi:ExampleP:dir=.DBI:File:f_dir=. (in cleanup) DBD driver has not implemented the AutoCommit attribute at C:/Perl/site/lib/DBD/LDAP.pm line 257, line 275 during global destruction.


es wurde doch jetzt speziell der driver "mysql" angegeben mit Host, Port, user und pw???

Kannst du mir bitte mal den kompletten Code geben, der funktionieren müsste?

Danke
Struppi
 2009-01-15 20:11
#118041 #118041
User since
2006-02-17
628 Artikel
BenutzerIn
[Homepage]
user image
Du hast meine Antwort gelesen?
deletemast
 2009-01-15 20:17
#118042 #118042
User since
2009-01-14
23 Artikel
BenutzerIn
[default_avatar]
Habe ich gelesen, und wie ist die Lösung?

Danke
<< |< 1 2 3 4 5 6 7 >| >> 63 Einträge, 7 Seiten



View all threads created 2009-01-14 01:45.