Thread MySQL - DBI/DBD: Bericht / Fragen (9 answers)
Opened by Crian at 2004-06-01 14:56

Crian
 2004-06-01 14:56
#32185 #32185
User since
2003-08-04
5871 Artikel
ModeratorIn
[Homepage]
user image
Ich habe mich über die Pfingsttage u.a. mit der DBI-Programmierung in Perl in Zusammenarbeit mit einer MySQL-Datenbank beschäftigt. Dies soll mir u.a. als Grundlage für die Einarbeitung in das Boardskript dienen. Als Referenz habe ich das O'Reilly Buch verwendet, und ich habe auch ein Testprogramm auf die Beine stellen können, das eine Tabelle anlegt, wenn sie noch nicht vorhanden ist, und mit Testdaten füllt, Abfragen auf dieser Tabelle Zeilenweise in Arrays oder komlett in Hash(referenzen) vornimmt.

Ich hab da aber noch ein paar Fragen:

1) Kann man bei mySQL irgendwie ermitteln, welche Tabellen eine Datenbank enthält? Ich erinner mich dunkel an eine andere DB, bei der man mit

[sql]SELECT * from tables;[/sql]

oder so ähnlich die vorhandenen Tabellen ermitteln konnte.

2) Wenn eine Tabelle leer ist, gibt folgender Code die Warnung aus, die mit warn erzeugt wird. Der Text ist dann aber etwas überraschend "prepare ohne execute".

Code: (dl )
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
    my $sth = $dbh->prepare('SELECT * FROM crian') or
                 die "Fehler bei der Vorbereitung Hash-Ref:\n" .
                     "\t$DBI::errstr\n";
   
   
   $sth->execute() or die "Fehler bei der Ausfuehrung Hash-Ref:\n".
                          "\t$DBI::errstr\n";
   
   $sth->dump_results();
   
   while (my $row = $sth->fetchrow_hashref) {
       printf("%20s: %s\n", $_, $row->{$_})
           for (@Crian_rows);
   }
   warn "Fehler beim Abrufen der Daten Hash-Ref:\n" .
        "\t$DBI::errstr\n" if $DBI::err;


Ich habe dann die Warnung auskommentiert, aber ich würde an der Stelle gerne unterscheiden können, ob was harmloses passiert ist, oder nicht.

3) Das ganze findet bei mir unter Linux statt. Um den mySQL-Server mysqld beim Systemstart zu starten, habe ich in /etc/initd.d/rc3.d/ und /etc/initd.d/rc5.d/ (oder so ähnlich) Start- und Stopplinks auf mysql im Verzeichnis darunter angelegt.
Diese werden auch ausgeführt, allerdings schlägt das beim Rechnerstart angeblich fehl (rotes "fail"), mysqld läuft aber und ich kann mein Programm ohne Probleme ausführen.
Irgendwelche Tipps? Oder soll ich das ignorieren?


Den Rest der Zeit habe ich damit verbracht, aus meinem Linux auf dem Laptop und meinem Linux auf dem normalen PC seit langer Zeit mal wieder ein vernünftiges Netzwerk zu basteln. Sonntag Abend klappte "alles", ssh-Verbindungen, mit denen man sogar X-Anwendungen des anderen Rechners auf dem aufrufenden ausgeben lassen kann, gegenseitige Sambafreigaben der jeweiligen Benutzerverzeichnisse (klappt sogar von XP aus, darauf mit dem richtigen pw zuzugreifen...), ich hab den Router davon überzeugen können, den Rechnern im Netzwerk feste IP-Nummern zu geben (dem DHCP-Server).

Als dann alles funktionierte, startete der Laptop Montag Morgen nicht mehr. Einfach tot, nichts tut sich, kein Geräusch, kein Bild, kein Vibrieren, gar nichts  :-/

*grmpf*

Nun bin ich am überlegen, ob ich aus alten Teilen noch einen P-II zusammensetzen kann, um wenigstens ein kleines Netzwerk aufrecht zu erhalten. Im Keller steht jedenfalls ein solches Gehäuse noch herum (mit Mainboard und CPU, wie es beim Speicher aussieht, weiß ich schon nicht mehr ;) Platten hat der aber mit Sicherheit keine...

Dazu eine Frage, wenn sie hier eigentlich auch gar nicht passt, sollte der Laptop nicht mehr zu reanimieren sein: Kann man Laptop-Festplatten an Desktop-Geräte anschließen? Und wenn ja, wie komm ich an die Festplatte ran?

Wenn das ein "normaler" PC wäre, würd ich die Platte halt kurz oder länger an einen anderen Rechner anhängen, aber so, ich fürchte, ich komm nicht mal ran an die Platte...
s--Pevna-;s.([a-z]).chr((ord($1)-84)%26+97).gee; s^([A-Z])^chr((ord($1)-52)%26+65)^gee;print;

use strict; use warnings; Link zu meiner Perlseite

View full thread MySQL - DBI/DBD: Bericht / Fragen