Schrift
[thread]3527[/thread]

perl mysql



<< >> 9 Einträge, 1 Seite
hummelchen
 2005-01-28 13:17
#32905 #32905
User since
2005-01-28
6 Artikel
BenutzerIn
[default_avatar]
ich versuche  daten in eine datenbank zu bekommen leider klaps nucht so richtig

my @fields = ('password','nick','group','email' );

dieses solte in eine datenbak rein geschrieben werden
die felder sind  vorhanden und ne id die auto_increment wird

so wenn daten vorhanden sind  also zb  nick= hummelchen seine id=1  solte dan ne updat gemacht werden

existiert ein user noch nicht
solte dan der nick angelegt werden bzw die daten reingeschrieben

mit perl bin ich grade am anfang zu lehrnen deswegen auch noch nicht so die erfahrung

habe selber schon mal mit ner schleife versucht aber  leider nur misserfolge  denke das wissen reicht noch nicht so richtig

super wen einer helfen könnte\n\n

<!--EDIT|hummelchen|1106911079-->
renee
 2005-01-28 14:10
#32906 #32906
User since
2003-08-04
14371 Artikel
ModeratorIn
[Homepage] [default_avatar]
Für das Zusammenspiel von Perl mit MySQL gibt es das Modul CPAN:DBI. Du kannst ja mal schauen, ob Dir http://wiki.perl-community.de/bin....agenDBI (bzw. http://perl.renee-baecker.de/perl_datenbanken.pdf ) weiterhilft.

Für Perl-Einsteiger finde ich den Vortrag von Strat (http://fabiani.net -> Vorträge -> Perl für Einsteiger) gut!
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/
Taulmarill
 2005-01-28 14:21
#32907 #32907
User since
2004-02-19
1750 Artikel
BenutzerIn

user image
es ist auch immer gut, wenn man mal zeigt, was man schon versucht hat. also nen bischen code postet. so können wir viel besser herausfinden, wo das problem liegt.
$_=unpack"B*",~pack"H*",$_ and y&1|0& |#&&print"$_\n"for@.=qw BFA2F7C39139F45F78
0A28104594444504400 0A2F107D54447DE7800 0A2110453444450500 73CF1045138445F4800 0
F3EF2044E3D17DE 8A08A0451412411 F3CF207DF41C79E 820A20451412414 83E93C4513D17D2B
hummelchen
 2005-01-28 15:30
#32908 #32908
User since
2005-01-28
6 Artikel
BenutzerIn
[default_avatar]
habt recht wegen dem code  aber leider ist der so mies denk ich

Code: (dl )
1
2
3
4
5
6
7
8
9
10
11
12
13
use DBI;
my($main,$password,$nick);

my $db_name = "DBI:mysql:users"; ## den Datenbankname ersetzen
my $db_user = "root"; ## Benutzername
my $db_pass = ""; ## Passwort
my @ergebnis;
my $test;

my $dbh = DBI->connect("$db_name","$db_user","$db_pass") || die "Database connection not made: $DBI::errstr";
my $sql = qq{insert into  mitglieder (password,nick) values (?,?)};
my $sth = $dbh->prepare($sql);    
my @i <= $#fields && defined({$fields[0]}


wen ein neuer nick  gibt dan sol er speichern  wen daten zb passwd geändert wird ein updat -gibs den nick nicht dan solte er angelegt werden mit der id



array müste doch da rein oh man ich habe halt zu wenig erfahrung

Code: (dl )
1
2
3
4
$sth->execute($password,$nick);
$sth->finish();
$dbh->disconnect();
}


bin grade mal  auf den links   schauen

edit renee: ne Runde [code]-Tags spendiert

danke renee wolte ich grade auch machen sorry das ich arbeit mache

he die links sind gut

wo ich ne problem habe glaub ich die schleifen da komm ich net mit\n\n

<!--EDIT|hummelchen|1106919392-->
renee
 2005-01-28 15:40
#32909 #32909
User since
2003-08-04
14371 Artikel
ModeratorIn
[Homepage] [default_avatar]
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
use DBI;
my($main,$password,$nick);

my $db_name = "DBI:mysql:users"; ## den Datenbankname ersetzen
my $db_user = "root"; ## Benutzername
my $db_pass = ""; ## Passwort
my @ergebnis;
my $test;

my $dbh = DBI->connect("$db_name","$db_user","$db_pass") || die "Database connection not made: $DBI::errstr";
my $sql_insert = qq{insert into mitglieder (password,nick) values (?,?)};
my $sql_select = qq~SELECT * FROM user WHERE password = ? AND nick = ?~;
my $sql_update = qq~UPDATE user SET password = ? WHERE nick = ?~;
my $sth = $dbh->prepare($sql_select) or die $dbh->errstr();
$sth->execute($password,$nick) or die $dbh->errstr();
if($sth->fetchrow_array()){
$sth = $dbh->prepare($sql_update) or die $dbh->errstr();
$sth->execute($password,$nick);
}
else{
$sth = $dbh->prepare($sql_insert) or die $dbh->errstr();
$sth->execute($password,$nick) or die $dbh->errstr();
}


edit: könntest Du uns auch sagen wobei Du bei den Schleifen ein Problem hast??\n\n

<!--EDIT|renee|1106919657-->
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/
hummelchen
 2005-01-28 16:01
#32910 #32910
User since
2005-01-28
6 Artikel
BenutzerIn
[default_avatar]
also ich will die  arry daten ins die datenbank reinschreiben

 my @fields = ('password','nick','group','email' );

leider hab ich kaum wissen wegen perl  schaue grade im netz rum um ein beispiel zu finden

wen der nick da ist hat der dan ne id nummer und nur wen das stimmt solten änderungen gemacht werden wen  was geändert wird

denke da an ne if anweisung

den rest weis ich echt nicht wies gehn solte  

komme halt absolut nicht zurecht mit schleifen  

sorry leute  bin denke echt zu unerfaren aber will mich ja bessern


rnee hab grade gesehn dus du den code schon neu gemacht hast ich teste das gleich \n\n

<!--EDIT|hummelchen|1106922539-->
hummelchen
 2005-01-28 16:44
#32911 #32911
User since
2005-01-28
6 Artikel
BenutzerIn
[default_avatar]
bei dem teil $sth->execute($password,$nick) or die $dbh->errstr();  kommt diese fehler Table 'users.user'

ich mach mal die tabelle rein




Code: (dl )
1
2
3
4
5
6
7
8
DROP TABLE IF EXISTS `mitglieder`;
CREATE TABLE `mitglieder` (
 `id` int(11) NOT NULL auto_increment,
 `password` longtext,
 `username` longtext,
 `nick` longtext,
 PRIMARY KEY  (`id`)
) TYPE=ISAM PACK_KEYS=1;
hummelchen
 2005-01-28 17:23
#32912 #32912
User since
2005-01-28
6 Artikel
BenutzerIn
[default_avatar]
Code: (dl )
1
2
3
my $sql_insert = qq{insert into  mitglieder (password,nick) values (?,?)};
my $sql_select = qq~SELECT * FROM mitglieder WHERE password = ? AND nick = ?~;
my $sql_update = qq~UPDATE mitglieder SET password = ? WHERE nick = ?~;


habe die beiden sach geändert in mitglieder

super soweit klapts auch renee

echt klasse von dir

nur hab ich da ne id mitdrinne somit macht der immer ne neue zeile auf

geht das auch wen der nick schon gibt das man dan mit der id nummer dan ein updat macht ?

solte so sein id=0 hat den nick = hummelchen

wen hummelchen was ändert und seine id=0 ist dan ein updat egal ob geändert oder nicht denke der aufwand ist dan zu hoch


in der zeile sind auch wesendlich mehr sachen drin so 20
deswegen dacht ich so an ein array das man das in einer schleife einliest in die datenbank

aber trotz allem super geholfen schon
hummelchen
 2005-01-29 11:51
#32913 #32913
User since
2005-01-28
6 Artikel
BenutzerIn
[default_avatar]
hallo ich habe was im www gefunden wie ich mir das denke mit der datenbank

Code: (dl )
1
2
3
4
5
6
7
8
9
10
11
12
13
for (my $i=0;$i<20;$i++)
    {
        if ($i <= $#fields && defined($user->{$fields[$i]}))
        {
            my $field = $fields[$i] eq  $user->{$fields[$i]};
            $field =~ s/[\r\n]//g;
            print FILE "$field\n";
        }
        else
        {
            print FILE "\n";
        }
    }


dies ist ein code bzw aber für eine datei  wie könnte man das ändern  so das es in die datenbank reingeschrieben wird

$user->{$fields[$i]};  darin befindet sich dan alle felder des arrays
renee das beispiel oben klapt  dies konnte ich erweitern schon IHR seit super\n\n

<!--EDIT|hummelchen|1106992430-->
<< >> 9 Einträge, 1 Seite



View all threads created 2005-01-28 13:17.