2016-05-14 15 views
1

私は自分のプロジェクトでチャット機能を作っています。そのチャット機能は人々がメッセージをお互いに送ることができますが、問題は何かを送ることです。問題は、私が度記号や記号を送信しているときに、何も挿入しないということです。データベースにデータを正しく挿入する方法

私のコード(これは私が試したものの一例です):

<?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')"); 

?> 

は、あなたたちは私の問題を理解していホープ、私は助けを必要とする、私を助けてください。

+1

を...はhtmlspecialchars($詐欺、$ _POST [ 'メッセージ']);'間違っています。 'htmlspecialchars()'関数は接続ハンドラを引数として取っていません。 RTM、[http://php.net/manual/en/function.htmlspecialchars.php](http://php.net/manual/en/function.htmlspecialchars.php) –

+0

クエリはSQLインジェクションの影響を受けやすいです。 mysqliを使っているなら、['prepared statements'](http://php.net/manual/en/mysqli.quickstart.prepared-statements.php)について学んでください。 [これはPHPでのSQLインジェクションを防ぐ方法です](http://stackoverflow.com/questions/60174/how-can-i-prevent-sql-injection-in-php)。 –

+0

* if-else *ブロックにクエリを挿入すると、次のようになります: 'if(mysqli_query($ con、INSERT INTO message(message)VALUES( '$ message'))){echo" success "; } else {"エラー:" $ con-> error; } '。また、エラー報告を有効にし、これらの行を追加してください。 'error_reporting(E_ALL); ini_set( 'display_errors'、1); 'をPHPスクリプトの先頭に置き、エラーが発生するかどうかを確認します。 –

答えて

0

データベースの照合に関連する可能性があります。 utf8に変更してみてください。このオプションをmysqli-mysqli::set_charset()と考えることもできます。

0

することは、$メッセージは引用符か何か含まれている場合でも動作するはずです、PDOで試してみてください。この文 `

$query=$pdo->prepare("INSERT INTO message (message) VALUES (:message)"); 
$query->execute(array(
"message"=>$message 
)); 
関連する問題