INSERT INTO reviews
(userName, email, phone, review_text,ip,browser)
VALUES('$userName','$email','$phone','$review_text','$userData[ip]','$userData[browser]')
вот строка которую передаю в real escape string
в БД не записывается. Запрос работает если из него \ убирать, после обработки
real escape string.
Так делать не нужно, нужно каждую переменную оборачивать в функцию отдельно, а так-же, желательно обрамлять поля в тильду `
$userName = mysqli_real_escape_string($userName);
$email = mysqli_real_escape_string($email);
$phone = mysqli_real_escape_string($phone);
$review_text = mysqli_real_escape_string($review_text);
$ip = mysqli_real_escape_string($userData['ip']);
$browser = mysqli_real_escape_string($userData['browser']);
$sql = "INSERT INTO `reviews` (`userName`, `email`, `phone`, `review_text`,`ip`,`browser`)
VALUES('" . $userName . "','" . $email . "','" . $phone . "','" . $review_text . "','" . $ip . "','" . $browser . "')";
А вообще, конечно - лучше использовать prepared- подготавливаемые запросы:
$stmt = $stmt->prepare("INSERT INTO `reviews` (`userName`, `email`, `phone`, `review_text`,`ip`,`browser`) VALUES(?,?,?,?,?,?)");
$stmt->bindParam(1, $userName);
$stmt->bindParam(2, $email);
$stmt->bindParam(3, $phone);
$stmt->bindParam(4, $review_text);
$stmt->bindParam(5, $userData['ip']);
$stmt->bindParam(6, $userData['browser']);
$stmt->execute();
В данном случае mysqli_real_escape_string делать не нужно, так-как - это делается внутри движка.
Апостиль в Лос-Анджелесе без лишних нервов и бумажной волокиты
Основные этапы разработки сайта для стоматологической клиники
Продвижение своими сайтами как стратегия роста и независимости