2016-05-14 3 views
1

Я создаю функцию чата для моего проекта, где люди могут отправлять сообщения друг другу, но проблема в том, что я хочу, чтобы пользователь отправлял что-либо, текст, цитаты или что-то еще ... Но проблема в том, когда я посылаю символ степени или знак, он ничего не вставляет.Как правильно вставить данные в базу данных в php

Моего код (Это пример того, что я пробовал):

<?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', узнайте о [' подготовленных заявлениях'] (http://php.net/manual/en/mysqli.quickstart.prepared-statements.php). [И вы можете предотвратить SQL-инъекцию в PHP] (http://stackoverflow.com/questions/60174/how-can-i-prevent-sql-injection-in-php). –

+0

Включите запрос в блок * if-else *, например: 'if (mysqli_query ($ con," INSERT INTO сообщение (сообщение) VALUES ('$ message') ")) {echo" success "; } else {"error:". $ Con-> ошибка; } '. Также включите отчет об ошибках, добавьте эти строки '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 
)); 
Смежные вопросы