Schrift
Wiki:Tipp zum Debugging: use Data::Dumper; local $Data::Dumper::Useqq = 1; print Dumper \@var;
[thread]3644[/thread]

DBI kennt "list_fields" nicht



<< >> 8 Einträge, 1 Seite
manuphp
 2005-12-12 21:20
#33834 #33834
User since
2005-12-12
3 Artikel
BenutzerIn
[default_avatar]
Hallo Leute
von PHP mach ich mal einen Shortcut zu perl..
Habe auf meiem Testserver Apache 2.0 und seit neuestem mit ActivePerl laufen.
habe bei perl DBI und dbd-mysql installiert, der connect funktioniert.

######################
Code: (dl )
1
2
3
4
5
6
7
8
9
10
use CGI;
use DBI;

my $DB_NAME = "usr_web288_1";
my $DB_DSN = "DBI:mysql:database=$DB_NAME";
my $DB_USER = "web288";
my $DB_PASSWD = "XXXXXXXXXXX";

my $dbh = DBI->connect($DB_DSN, $DB_USER, $DB_PASSWD) or die "Fehler bei Datenbankverbindung: $!";
my @DB_Felder = $dbh->list_fields('mails');

###################################

Ich krieg aber immer diesen Fehler:
Can't locate object method "list_fields" via package "DBI::db"
Wieso funktioniert die list_fields Methode nicht?
Kennt sich da jemand genauer aus?
Gruss Emanuel\n\n

<!--EDIT|renee|1134427477-->
esskar
 2005-12-12 21:58
#33835 #33835
User since
2003-08-04
7321 Artikel
ModeratorIn

user image
das muss noch dbd:mysql heißen
renee
 2005-12-13 00:42
#33836 #33836
User since
2003-08-04
14371 Artikel
ModeratorIn
[Homepage] [default_avatar]
Nein, DBI:mysql ist schon richtig, auch wenn das Modul fuer MySQL CPAN:DBD::mysql heisst!

@manuphp: woher hast Du denn das mit list_fields()? Ich habe dazu in der Doku nichts gefunden. Was willst Du denn erreichen? Ich denke mal, Du willst so etwas wie column_info haben (siehe Doku zu CPAN:DBI)...
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/
manuphp
 2005-12-13 10:30
#33837 #33837
User since
2005-12-12
3 Artikel
BenutzerIn
[default_avatar]
Hallo Renee
Ich als perl-Dumpfbacke hab natürlich im http://de.selfhtml.org/perl/sprache/cgitypisch.htm#dbfrontend
nachgeschaut. Da steht so ein lehrbuchmässiges Beispiel (nach der Beschreibung DB). Muss ich mich in meiner Lehrbibeltreue erschüttern lassen?
Gruss
Emanuel
coax
 2005-12-13 11:25
#33838 #33838
User since
2003-08-11
457 Artikel
BenutzerIn
[default_avatar]
Fuer DBD::mysql existiert keine Methode die list_fields heiszt (anders bei der C++ API mysql_list_fields) stattdessen wird eine Datenbankabfrage gemacht um zu den Informationen zu gelangen:
Code: (dl )
$sth = $dbh->prepare("LISTFIELDS $table");

Siehe dazu die Beispiele in CPAN:DBD::mysql und CPAN:DBI.
,,Das perlt aber heute wieder...'' -- Dittsche
wschrabi
 2005-12-13 11:35
#33839 #33839
User since
2005-12-13
1 Artikel
BenutzerIn
[default_avatar]
Ich hab ein ählihces Problem. Ich steige von MySQL auf Oracle um. doch dbi:Oracle kennt "Desc $Table" nicht.
Jetzt möchte ich es hardcoden. Doch wie mach ich das?
Hier mein Code:
Code: (dl )
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
sub new
{
my ($class, $dbh, $tabelle) = @_;
my $self = {}; &nb
sp;

$self->{tabelle} = $tabelle;
$self->{data} = $dbh->selectall_arrayref (
           "Describe $tabelle")
or die escapeHTML ("Keine Infos zu $tabelle\n");

   print "\n<BR> @{$self->{data}}[0]\n";
   
   
   foreach( @{$self->{data}} ) {
   # We could do this, but it only works for 4 elements
   print "$_->[0], $_->[1] $_->[2] $_->[3]\n";
   # Therefore, use the more general form.
   print "\n";
   }
   
   

   # Zu jedem Spaltennamen einen Eintrag im $self-Hash
$self->{spalte} = {};
foreach my $spalte_ref (@{$self->{data}})
{
$self->{spalte}->{$spalte_ref->[0]} = $spalte_ref;
}

my $spalte_ref;

$self->{spalte}->{$spalte_ref->[0]} ="id";
$self->{spalte}->{$spalte_ref->[0]} ="PMID";
$self->{spalte}->{$spalte_ref->[1]} ="PDate";
$self->{spalte}->{$spalte_ref->[2]} ="Titel";
$self->{spalte}->{$spalte_ref->[3]} ="AuthorList";
$self->{spalte}->{$spalte_ref->[4]} ="SCIAuthorList";
$self->{spalte}->{$spalte_ref->[5]} ="Affiliation";
$self->{spalte}->{$spalte_ref->[6]} ="DOILINK";
$self->{spalte}->{$spalte_ref->[7]} ="Language";
$self->{spalte}->{$spalte_ref->[8]} ="AbstractText";
$self->{spalte}->{$spalte_ref->[9]} ="Volume";
$self->{spalte}->{$spalte_ref->[10]} ="Issue";
$self->{spalte}->{$spalte_ref->[11]} ="ISSN";
$self->{spalte}->{$spalte_ref->[12]} ="Journal";
$self->{spalte}->{$spalte_ref->[13]} ="PGVON";
$self->{spalte}->{$spalte_ref->[14]} ="PGBIS";
$self->{spalte}->{$spalte_ref->[15]} ="PTList";
$self->{spalte}->{$spalte_ref->[16]} ="MeshHeadingList";


return (bless ($self, $class));
}


Irgend eine Idee?
Danke Bestens

edit pq: code-tags statt quote-tags\n\n

<!--EDIT|pq|1134466930-->
renee
 2005-12-13 11:39
#33840 #33840
User since
2003-08-04
14371 Artikel
ModeratorIn
[Homepage] [default_avatar]
Es gibt table_info und das von mir schon genannte column_info (siehe CPAN:DBI-Doku)
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/
renee
 2005-12-13 11:46
#33841 #33841
User since
2003-08-04
14371 Artikel
ModeratorIn
[Homepage] [default_avatar]
@Coax: Damit rennt man aber schon wieder in Datenbanksystemspezifische Sachen. In der DBI-Doku habe ich zu der Abfrage nichts gefunden. Die von mir genannten Methoden sind in DBI drin und sind Datenbanksystemunabhaengig...
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/
<< >> 8 Einträge, 1 Seite



View all threads created 2005-12-12 21:20.