King Lully: SQL Syntax-Error

Beitrag lesen

Bleibt nur noch die Frage warum MySQL nicht direkt das PREPARE angemängelt hat.

Die Fehlermeldung wurde wegen Misslingens der Funktion $dbh->prepare() ausgegeben.

  
my $dbh=DBI->connect("DBI:mysql:base:localhost","base",'aha') or die "Fehler bei der Datenbankverbindung: $DBI::errstr";  
my $insert=$dbh->prepare("INSERT INTO teilnehmer (lfdnr,ano,vorname,zuname,strasse,plz,ort,alter,sex,teilnahme,email,datum) VALUES (?,?,?,?,?,?,?,?,?,?,?,?)") || die $DBI::errstr;  
$insert->execute($lfn,$ano,$vorname,$zuname,$strasse,$plz,$ort,$alter,$sex,$teilnahme,$email,$unix) || die $DBI::errstr;  

Die Fehlermeldung kommt ja wohl ganz offenkundig aus dem execute():
"You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'alter,sex,teilnahme,email,datum) VALUES ('1004','anonym','a','a','a','a','a','2'' at line 1 at zum_ausflippen.pl line 37."

Dabei kommt aber kein PREPARE-Statement zur Anwendung.

Klar, es geht nicht um prepared statements, wie von Dir behauptet, vgl. auch http://search.cpan.org/~timb/DBI-1.53/DBI.pm

Insofern gehen auch weitere Ausführungen zum Thema Deinerseits (Ausnahme: Dein Hinweis auf "alter" war durchaus richtig :) an der Sache vorbei:
"Das ist irrelevant. ...", "Das war das tatsächlich versandte SQL-Statement. ..." ( https://forum.selfhtml.org/?t=144863&m=939807 )

Somit sollte nach einem bind_param() - wie von uns angeregt - dieses hier im Forum für Analysezwecke angegeben werden.