User since
2003-08-15
2653
Artikel
BenutzerIn
habe dieses statement:
my $message = 'hallo "du"';
$dbh->do("INSERT INTO messages (von, receiver, betreff, message, status, datestamp) VALUES (\"$username\", \"$receiver\", \"$betreff\", \"$message\", '1', NOW())") || die $DBI::errstr;
leider gibt es immer ein SQL Syntax Error wenn der String ein " (Anführungszeichen) enthällt. Wie kann man das verhindern?
User since
2003-08-04
14371
Artikel
ModeratorIn
mach:
$username = $dbh->quote($username);
$dbh->do("INSERT INTO messages(von) VALUES ($username)");
das andere ebenfalls abändern...
User since
2003-08-15
2653
Artikel
BenutzerIn
du bist spitze!!! jetzt funzt's prima! Noch ne andere Frage, ich hab grad versucht ne Liste zu qoten $dbh->quote($var1, $var2); aber leider quotet er nur den ersten! Weisst du vielleicht, ob es da ne möglichkeit gibt, weil ich hab in einer anderen tabelle in einem datensatz mehr als 40 spalten und das wäre blöd wenn ich jedesmal ein extra quote() machen müsste!
Danke nochmals und einen schönen Tag!!!
User since
2003-08-15
2653
Artikel
BenutzerIn
PS: beum updaten funzt das noch nicht:
$title = $dbh->quote($title);
$dbh->do("UPDATE users SET title = $title WHERE...");
was ist daran falsch?\n\n
<!--EDIT|Froschpopo|1065621821-->
User since
2003-08-04
14371
Artikel
ModeratorIn
probier mal Dein erstes Problem so zu lösen (bin mir aber nicht ganz sicher):
map $dbh->quote($_), ($user, $title, ...)
Gibt es denn beim updaten eine Fehlermeldung?? Oder funktioniert es einfach nicht?? Zeig mal bitte Dein gesamtes SQL-Statement! Normalerweise sollte es funktionieren...
User since
2003-08-15
2653
Artikel
BenutzerIn
war ein anderer fehler im HTML!!! Danke
User since
2003-08-04
2145
Artikel
ModeratorIn + EditorIn
Nimm Platzhalter und spar dir das quote().