php mysqli вставляет одинарные и двойные кавычки из одной и той же переменной - PullRequest
0 голосов
/ 07 сентября 2018

Попытка обновить базу данных с ростом человека. Я попробовал все варианты mysqli_real_escape_string, addlashes и даже str_replace в попытке обновить базу данных с одинарной и двойной кавычкой. Давайте предположим, что человек 6 '1 ". Как я могу загрузить это значение в базу данных?

$height = '6\' 1"'; 
$height = mysqli_real_escape_string($mysqli, $height);
$sql = "INSERT INTO persons (height) VALUES ('$height')"; 

Результат, возвращаемый в БД, когда я получаю результаты, всегда одинаков:

6' 1"

Было бы лучше просто принять, что оно обновляется таким образом, поскольку моя html-страница будет отображаться (6 '1 ") вместо (6' 1"), или есть лучший или более безопасный способ обновить мою базу данных?

1 Ответ

0 голосов
/ 07 сентября 2018

ВНИМАНИЕ: mysqli_real_escape_string не всегда безопасна

Пример: Внедрение SQL, которое происходит вокруг mysql_real_escape_string ()

Вы должны использовать подготовленные операторы или PDO для защиты от SQL-инъекций

Но для сохранения высоты вы можете использовать только один столбец INT и поместить высоту в наименьшую единицу (дюймы), а затем преобразовать ее, если хотите показать ее, например, 6 '1 ", составляет 73 дюйма. Или наоборот, если вы хотите сохранить это.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...