Schrift
[thread]3460[/thread]

MySQL - DBI/DBD: Bericht / Fragen



<< >> 10 Einträge, 1 Seite
Crian
 2004-06-01 14:56
#32185 #32185
User since
2003-08-04
5866 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
renee
 2004-06-01 15:29
#32186 #32186
User since
2003-08-04
14371 Artikel
ModeratorIn
[Homepage] [default_avatar]
also [sql]SELECT * FROM tables;[/sql] kenne ich jetzt nicht, um die Tabellen zu bekommen. Ich kenne nur [sql]SHOW tables FROM database;[/sql]
OTRS-Erweiterungen (http://feature-addons.de/)
Frankfurt Perlmongers (http://frankfurt.pm/)
--

Unterlagen OTRS-Workshop 2012: http://otrs.perl-services.de/workshop.html
Perl-Entwicklung: http://perl-services.de/
Crian
 2004-06-01 15:41
#32187 #32187
User since
2003-08-04
5866 Artikel
ModeratorIn
[Homepage]
user image
Ah, wahrscheinlich hat sich meine Erinnerung dann einfach getäuscht. Das muss ich heute Abend mal ausprobieren.

Kann man auch noch herausbekommen, welche databases es gibt?\n\n

<!--EDIT|Crian|1086090159-->
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
ptk
 2004-06-01 15:46
#32188 #32188
User since
2003-11-28
3645 Artikel
ModeratorIn
[default_avatar]
Zu 1: DBI kennt die table_info-Methode.
Crian
 2004-06-01 16:11
#32189 #32189
User since
2003-08-04
5866 Artikel
ModeratorIn
[Homepage]
user image
thx

Gibts bei mysql auch views?

DBI generell kann bestimmt auch mit Views umgehen, oder? Werden die auch über die table_info-Methode zurück gemeldet, oder gibt es eine eigene (vielleicht view_info)?
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
renee
 2004-06-01 16:12
#32190 #32190
User since
2003-08-04
14371 Artikel
ModeratorIn
[Homepage] [default_avatar]
Nein, Views werden noch nicht geboten... (Ist ab Version 5.1 geplant)
OTRS-Erweiterungen (http://feature-addons.de/)
Frankfurt Perlmongers (http://frankfurt.pm/)
--

Unterlagen OTRS-Workshop 2012: http://otrs.perl-services.de/workshop.html
Perl-Entwicklung: http://perl-services.de/
Heromaster
 2004-06-01 16:13
#32191 #32191
User since
2003-08-05
220 Artikel
BenutzerIn
[default_avatar]
SHOW DATABASES zeigt Dir alle Datenbanken, es sei denn du benutzt MySQL 4.0.x, da ist es standardmäßig ausgeschalten. Views sind erst in MySQL 5.0 bzw. 5.1 vorgesehen.
Derjenige, der zwei Hasen jagt, lässt einen zurück und verliert den anderen.
Crian
 2004-06-01 16:16
#32192 #32192
User since
2003-08-04
5866 Artikel
ModeratorIn
[Homepage]
user image
Dank Euch beiden =)

Schade mit den Views... naja egal, später ;)

Aber DBI müsste doch trotzdem mit views umgehen können, da andere DB's Views unterstützen? Ich muss heute Abend noch mal fleissig die Doku wälzen...
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
Heromaster
 2004-06-01 16:26
#32193 #32193
User since
2003-08-05
220 Artikel
BenutzerIn
[default_avatar]
Du kannst Sichten wie normale Tabellen auch mit den Standardmethoden von DBI abrufen. Da muss nix extra von seitens der Datenbanktreiber bereitgestellt werden, um diese abzuholen :)\n\n

<!--EDIT|Heromaster|1086092878-->
Derjenige, der zwei Hasen jagt, lässt einen zurück und verliert den anderen.
Strat
 2004-06-05 04:06
#32194 #32194
User since
2003-08-04
5246 Artikel
ModeratorIn
[Homepage] [default_avatar]
laptop-festplatten kann man an einen PC anschliessen, aber da braucht man ein entsprechendes kabel, weil bei 2,5'' Festplatten nur ein Kabel zwischen MB und HDD verlaeuft, das auch Strom mitfuehrt, waehrend bei 3,5'' HDDs normalerweise zwei Kabel laufen, eins fuer die Daten und eins fuer Strom
perl -le "s::*erlco'unaty.'.dk':e,y;*kn:ai;penmic;;print"
http://www.fabiani.net/
<< >> 10 Einträge, 1 Seite



View all threads created 2004-06-01 14:56.