2015-08-19 2 views
0

Я пытаюсь собрать данные от пользователя, но я все еще получаю эту ошибку.Сбор данных с помощью php с использованием функции mysqli_escape_string()

синтаксическая ошибка, неожиданное «имя» (T_STRING).

здесь строка кода, вызывающая эту ошибку;

$name = mysqli_escape_string("$_POST['name']"); 
+1

FYI: Вы можете принять ответ, который помог вам больше всего, и решить вашу проблему (HTTP: //meta.stackexchange.com/q/5234) – Rizier123

ответ

4
$name = mysqli_escape_string("$_POST['name']"); 

есть две проблемы здесь.

Во-первых, для этой функции требуется, чтобы соединение db передавалось как первый параметр, а другое - кавычки.

Вот правильный синтаксис и предполагается, что вы действительно используете mysqli_ для подключения.

$name = mysqli_escape_string($connection, $_POST['name']); 

, если нет, то использовать его mysql_ эквивалент

$name = mysql_escape_string($_POST['name']); 

или

$name = mysql_escape_string($_POST['name'], $connection); 

mysqli_escape_string является псевдонимом mysqli_real_escape_string так что вам, возможно, потребуется изменить его на что, или mysql_real_escape_string если ваш db - mysql_ или mysqlireal_escape_string при подключении с помощью mysqli_.

  • Различные API-интерфейсы MySQL не смешиваются.

Читайте документацию:

mysqli_escape_string - Псевдоним mysqli_real_escape_string()

Эта функция является псевдонимом: mysqli_real_escape_string().

строка mysqli_real_escape_string (MySQLi $ ссылка, строка $ escapestr)

+0

Спасибо, кучка. – johnT

+0

@johnT Добро пожаловать, John, * cheers * –

+1

mysqli_real_escape_string ($ _ POST ['name']). работает тоже. – johnT

0

Вы забыли передать функции параметр mysqli connection, а также поставить 2 дополнительные кавычки.

Попробуйте это:

$name = mysqli_escape_string($conn, $_POST['name']); 
+0

Спасибо большое @SpongePablo ... !! трудно быть новичком !!! – johnT

+0

@johnT добро пожаловать! не забудьте закрыть вопрос, если он будет решен! – SpongePablo

0

использование pdo для лучшей безопасности

но MySQLi:

mysqli_escape_string($conn, $_POST['name']); 

MySQL:

mysqli_escape_string($_POST['name'],$conn); 

необязательно использовать этот код для отмены PHP код клиента:

mysqli_escape_string($conn, html_special_character($_POST['name'])); 
Смежные вопросы