perlunity.de - PERL | JAVASCRIPT | PHP | MySQL | APACHE



#!/COMMUNITY

Members: 5374
davon online: 1
weitere User: 19
Click for quality!




11.02.2012 / 23:29

Community-Member werden   |   Paßwort vergessen   |   OnlineMonitor (1) Wer ist online ... OnlineMonitor starten !
     

 

Home


PERLscripts


PHPscripts


JAVAscripts


Hilfreiches


Links2www


Newscenter


Community


Interna




Community  »  Perl: Allgemeines Forum zur Themenübersicht Themensuche Themenansicht in Thread-Modus


BeitragFehler beim Ausführen von Perlscript
Seitenanfang
DBD::mysql::st execute failed: Column count doesn't match
value count at row 1 at telefonliste.pl line 7, <STDIN> line 8.
Column cout doesn't match value count at row 1 at telefonliste.pl line 77, <STDIN> line 8.

????

Datum: 26.07.2006-10:54

Beitragre: Fehler beim Ausführen von Perlscript
Seitenanfang
Du musst mehr Informationen geben. Am besten alle.

Datum: 26.07.2006-13:26

Beitragre: Fehler beim Ausführen von Perlscript
Seitenanfang
#! /usr/bin/perl

#Der MySQL-Code:
#create database Mitarbeiter;
#use Mitarbeiter;
#create table Mitarbeiter(
#ID integer not null auto_increment,
#Nachname varchar(45),
#vorname varchar(45),
#Telefon integer,
#Kuerzel varchar(10),
#KST integer,
#Mail varchar(45),
#Buero varchar(10)
#primary key (ID));

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

#Initialisierung

print "Telefonliste\n\n";
use strict;
use warnings;
use DBI;
my $option = 1;
my $auswahl = 1;
my $user = 'root';
my $pass = '12345';
my $db = 'Mitarbeiter';
my $host = 'localhost';
my $driver = "DBI:mysql:$db:$host";
my $dbh = DBI->connect($driver, $user, $pass) or die $DBI::errstr;

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

#Hauptmenue

while ($option != 0){
print "Bitte waehlen Sie eine Option: \n";
print "1 Person eingeben \n";
print "2 Person suchen \n";
print "3 Person loeschen \n";
print "0 Beenden \n";
print "\nIhre Wahl: ";
my $option = <STDIN>;
print "\n";

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

#Verbindung beenden

if ($option == 0){
my $dbh->disconnect;
}

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

#Person eingeben

if ($option == 1){
print "\nBitte geben Sie den Nachnamen ein. \n";
my $nachname = <STDIN>;
print "\nBitte geben Sie den Vornamen ein. \n";
my $vorname = <STDIN>;
print "\nBitte geben Sie die interne Telefonnummer ein. \n";
my $tel = <STDIN>;
print "\nBitte geben Sie den Kuerzel ein. \n";
my $kuerzel = <STDIN>;
print "\nBitte geben Sie die Kostenstelle ein. \n";
my $kst = <STDIN>;
print "\nBitte geben Sie die E-Mail ein. \n";
my $mail = <STDIN>;
print "\nBitte geben Sie die Bueronummer ein. \n";
my $buero = <STDIN>;
print "\n\n";
my $statement = 'insert into Mitarbeiter values(null, $nachname, $vorname, $tel, $kuerzel, $kst, $mail, $buero)';
my $sth = $dbh->prepare($statement)or die $DBI::errstr;
$sth->execute() or die $DBI::errstr;
};

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

#Person auslesen

if ($option == 2){

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

#Menue Suchen_nach

while ($auswahl != 0){
print "1 Suchen nach Nachname \n";
print "2 Suchen nach Vorname \n";
print "3 Suchen nach Telefonnummer \n";
print "4 Suchen nach Kuerzel \n";
print "5 Suchen nach Kostenstelle \n";
print "6 Suchen nach E-Mail \n";
print "7 Suchen nach Buero \n";
print "0 Hauptmenue \n";
print "\nIhre Wahl: ";
my $auswahl = <STDIN>;

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

#Nach Nachnamen suchen

if ($auswahl == 1){
print "\nBitte geben Sie den Nachnamen ein. \n";
my $search = <STDIN>;
my $statement = 'select * from Mitarbeiter where Nachname == $search';
my $sth = $dbh->prepare($statement)or die $DBI::errstr;
$sth->execute() or die $DBI::errstr;
};

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

#Nach Vornamen suchen

if ($auswahl == 2){
print "\nBitte geben Sie den Vornamen ein. \n";
my $search = <STDIN>;
my $statement = 'select * from Mitarbeiter where Vorname == $search';
my $sth = $dbh->prepare($statement)or die $DBI::errstr;
$sth->execute() or die $DBI::errstr;
};

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

#Nach Telefonnummer suchen

if ($auswahl == 3){
print "\nBitte geben Sie die Telefonnummer ein. \n";
my $search = <STDIN>;
my $statement ='select * from Mitarbeiter where Telefon == $search';
my $sth = $dbh->prepare($statement)or die $DBI::errstr;
$sth->execute() or die $DBI::errstr;
};

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

#Nach Kuerzel suchen

if ($auswahl == 4){
print "\nBitte geben Sie den Kuerzel ein. \n";
my $search = <STDIN>;
my $statement = 'select * from Mitarbeiter where Kuerzel == $search';
my $sth = $dbh->prepare($statement)or die $DBI::errstr;
$sth->execute() or die $DBI::errstr;
};

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

#Nach Kostenstelle suchen

if ($auswahl == 5){
print "\nBitte geben Sie die Kostenstelle ein. \n";
my $search = <STDIN>;
my $statement = 'select * from Mitarbeiter where KST == $search';
my $sth = $dbh->prepare($statement)or die $DBI::errstr;
$sth->execute() or die $DBI::errstr;
};

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

#Nach E-Mail suchen

if ($auswahl == 6){
print "\nBitte geben Sie die E-Mail ein. \n";
my $search = <STDIN>;
my $statement = 'select * from Mitarbeiter where Mail == $search';
my $sth = $dbh->prepare($statement)or die $DBI::errstr;
$sth->execute() or die $DBI::errstr;
};

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

#Nach Buero suchen

if ($auswahl == 7){
print "\nBitte geben Sie das Buero ein. \n";
my $search = <STDIN>;
my $statement = 'select * from Mitarbeiter where Buero == $search';
my $sth = $dbh->prepare($statement)or die $DBI::errstr;
$sth->execute() or die $DBI::errstr;
};
};
};

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

#Person loeschen

if ($option == 3){
print "\nBitte geben Sie die ID ein. \n";
my $search = <STDIN>;
my $statement = 'delete * from Mitarbeiter where ID == $search';
my $sth = $dbh->prepare($statement)or die $DBI::errstr;
$sth->execute() or die $DBI::errstr;
};

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

#Abschluss

};

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

#Copyright

print "\n© by Rafael Pedrett besitzer\@betriebsdirektor.de";

Datum: 26.07.2006-13:32

Beitragre: Fehler beim Ausführen von Perlscript
Seitenanfang
So einen Fehler bekommst du normalerweise, wenn deine insert oder replace Statements eine andere Anzahl Felder haben, als die angesprochene Tabelle.

Bei deinem SQL stimmt zwar die Anzahl Felder, aber lasse doch einfach mal das null am Anfang deines insert-Statements weg oder deklariere vollständig mit "insert into Mitarbeiter (Nachnahme ... Buero) values('$nachname', ... '$buero')";

Außerdem werden deine Variablen nicht aufgelöst, da du nur ' statt " bei deinem Statement verwendest. Richtige Schreibweise siehe mein Beispiel oben, und auch die Werte im Statement müssen (da varchar() in Anführungszeichen stehen.

Grüße,
Peter

Datum: 26.07.2006-21:29

-






-
-