Wie die Flucht Anführungszeichen beim einfügen in die Datenbank mit PHP
Ich bin ganz neu bei PHP so Leid, wenn Sie klingt wie ein einfaches problem... 🙂
Ich habe eine Fehlermeldung beim einfügen von Inhalten, die enthält Zitate in meine db.
hier ist, was ich versuchte zu entkommen versuchen die Zitate aber hat nicht funktioniert:
$con = mysql_connect("localhost","xxxx","xxxxx");
if (!$con)
{
die('Could not connect: ' . mysql_error());
}
mysql_select_db("test", $con);
$nowdate = date('d-m-Y')
$title = sprintf($_POST[title], mysql_real_escape_string($_POST[title]));
$body = sprintf($_POST[body], mysql_real_escape_string($_POST[body]));
$sql="INSERT INTO articles (title, body, date) VALUES ('$title','$body','$nowdate'),";
if (!mysql_query($sql,$con))
{
die('Error: ' . mysql_error());
}
header('Location: index.php');
Konnte Sie keine Lösung finden?
Vielen Dank im Voraus.
Mauro
- Bitte zeigen Sie die Fehlermeldung, scheinen Sie schon die Flucht die Daten korrekt.
Du musst angemeldet sein, um einen Kommentar abzugeben.
sollte es funktionieren, ohne die sprintf Zeug
mysqli_bind_param
die Umsetzung ist ein bisschen verbose, und hat eine verheerende Schnittstelle Falle für den unvorsichtigen bindet, die durch variable Referenz statt Wert. Dies macht es oft ein schwieriger verkaufen als die Flucht. (G.U. ist ein bisschen besser an dieser front.)'foo'.$bar
, was bedeutet, dass mehr gefälschte temporäre Variablen. Ich Liebe parametrierte Abfragen, abermysqli
's-Schnittstelle ist ein Schuppen. Python-DB-API zeigt, wie es sollte getan werden, kurz und prägnant. (Obwohl dann Holen Sie sich den Kummer vonparamstyle
, so kann man nicht gewinnen, Schätze ich...)Bitte starten Sie mit vorbereiteten parametrisierte Anweisungen. Sie entfernen die Notwendigkeit für jede SQL-escaping sorgen und schließen Sie die SQL-injection-Lücke, die string-verketteten SQL-Anweisungen offen lassen. Plus Sie sind viel mehr angenehm, mit zu arbeiten und sehr viel schneller, wenn verwendet, in einer Schleife.
Mit jeder Datenbank-Abfrage, vor allem die Einsätze aus eine web-basierte Anwendung, Sie sollten wirklich mit Parametern. Hier finden Sie PHP-Hilfe auf, wie Parameter in Ihren Abfragen: PHP-Parameter
Dies wird helfen, verhindern, dass SQL-injection-Angriffe sowie verhindern, dass Sie mit escape-Zeichen.
Ihren code
sollte wie folgt
Komma nicht da sein sollte, am Ende der Abfrage