2016-05-14 11 views
1

Ich erstelle eine Chatfunktion für mein Projekt, in der Leute Nachrichten an einander senden können, aber das Problem ist, ich will Benutzer, alles, Text, Anführungsstriche oder irgendetwas zu senden ... aber Das Problem ist, wenn ich Gradsymbol oder Zeichen sende, fügt es nichts ein.wie man Daten in der Datenbank richtig in php einfügt

Mein Code (Dies ist Beispiel dafür, was ich versucht habe):

<?php 
$message = htmlspecialchars($_POST['message']); 
$message = mysqli_real_escape_string($con, $message); 

//Here i am inserting everything 
mysqli_query($con, "INSERT INTO message (message) VALUES ('$message')"); 

?> 

Hoffnung, die Sie Jungs haben mein Problem zu verstehen, Ich brauche Hilfe, bitte hilf mir.

+1

Diese Aussage '... htmlspecialchars ($ con, $ _POST [ 'Nachricht']);' ist falsch. 'htmlspecialchars()' Funktion nimmt Verbindungshandler nicht als Argument. RTM, [http://php.net/manual/en/function.htmmlspecialchars.php](http://php.net/manual/en/function.htmlspecialchars.php) –

+0

Ihre Abfrage ist anfällig für SQL-Injektion. Wenn Sie mysqli verwenden, informieren Sie sich über vorbereitete Anweisungen (http://php.net/manual/en/mysqli.quickstart.prepared-statements.php). [Und so können Sie SQL-Injection in PHP verhindern] (http://stackoverflow.com/questions/60174/how-can-i-prevent-sql-injection-in-php). –

+0

Umbruch Sie einfügen Abfrage in * if-else * Block, wie folgt: 'if (mysqli_query ($ con," INSERT INTO Nachricht (Nachricht) VALUES ('$ Nachricht') ")) {echo" Erfolg "; } else {"Fehler:". $ conf> Fehler; } '. Aktivieren Sie auch Fehlerberichte, fügen Sie diese Zeilen hinzu 'error_reporting (E_ALL); ini_set ('display_errors', 1); 'an der Spitze Ihres PHP-Skripts und sehen, ob es einen Fehler ergibt oder nicht. –

Antwort

0

Es kann etwas mit der Kollatierung der Datenbank zu tun haben. Versuchen Sie es in utf8 zu ändern. Sie können auch diese Option von mysqli - mysqli::set_charset() betrachten.

0

Versuchen mit PDO, sollte es funktionieren, selbst wenn $ message Anführungszeichen oder irgendetwas enthält:

$query=$pdo->prepare("INSERT INTO message (message) VALUES (:message)"); 
$query->execute(array(
"message"=>$message 
)); 
Verwandte Themen