Добавление mysql_real_escape_string () приводит к тому, что пустые значения сохраняются в базе данных - PullRequest
2 голосов
/ 17 июня 2011
$submit=$_POST['submit'];
$fullname=$_POST['fullname'];
$phone=preg_replace('/[^0-9]/', '', $_POST['phone']);
$phone =  (int) $phone;
$adress=$_POST['city']  . ' ' .  $_POST['district'] . ' ' . $_POST['adress'];
$friends=$_POST['friends'];
$school=$_POST['school'];
$info=$_POST['info'];
$dob = $_POST['year']."-". $_POST['month']."-".$_POST['day'];

Недавно я добавил на свою страницу:

foreach ($_POST as $key => $value) { 
$_POST[$key] = mysql_real_escape_string($value);
}   

Я хочу очистить все $ _POST (http://prntscr.com/22uot) ID 20 перед добавлением mysql_real_escape_string() на мою страницу, идентификатор 22 после. Моя страница помещает все переменные в поля таблицы БД, но когда я хочу добавить mysql_real_escape_string() переменная ничего не помещает в поле. Я не знаю, что делать.

Ответы [ 2 ]

6 голосов
/ 17 июня 2011

Как четко указано в руководстве (это первое, что вы должны просмотреть, если сомневаетесь):

Требуется соединение MySQL перед используя mysql_real_escape_string () в противном случае ошибка уровня E_WARNING генерируется, и возвращается FALSE. Если link_identifier не определен, последнее соединение с MySQL используется.

Перед использованием этой функции убедитесь, что вы подключились к базе данных.

$link = mysql_connect($dbhost,$dbuser,$dbpass);
mysql_select_db($dbname);
3 голосов
/ 17 июня 2011

, чтобы использовать эту функцию, вы должны открыть соединение с вашей базой данных, как:

mysql_connect(...);
$fullname=mysql_real_escape_string($_POST['fullname']);
etc ...
...