Проблема с mysqli_real_escape_string (и магические кавычки отключены) - PullRequest
0 голосов
/ 12 апреля 2011

У меня проблема с mysqli_real_escape_string и одинарными кавычками.

Каждый раз, когда вставка принимает значение, которое содержит «mysqli_real_escape_string заменяет его на \», вызывая сбой вставки.

У меня не включены магические кавычки, что, как представляется, является частой причиной этой проблемы, но все равно я получаю \ 'а не \' или даже \\ '

Может кто-нибудь сказать мне, что здесь могло пойти не так?

1 Ответ

2 голосов
/ 12 апреля 2011

принимая это к ответу, так как комментарии немного ограничивают.

Итак, вы генерируете запрос как

$a = mysqli_real_escape_string(... something ...);
$b = mysqli_real_escape_string(... something else ...);

$sql = "INSERT ... VALUES ('$a', '$b')";


ки. так скажем так:

$a = "'"; // a is now a single quote: '
$escaped_a = mysql_real_escape_string($a); // should be \' now

$sql1 = "INSERT ... VALUES ('$a' ..."
$sql2 = "INSERT ... VALUES ('$escaped_a' ..."

в итоге вы должны получить

INSERT ... vALUES (''' ...
INSERT ... VALUES ('\'' ...

Первый из них "плохой". из-за дополнительной цитаты. Вторая действительна.

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