2015-07-28 3 views
1

У меня есть этот код:mysqli_real_escape_string и двойные кавычки вопрос

$var = mysqli_real_escape_string($connection,$_POST['var']); 
$sql = "UPDATE users SET var = '$var' WHERE id = '$id'"; 

Если переменная является aaa, это нормально, даже если переменная является aa'bbb, но если переменная является sss"ddd - вар, который обновляется является только sss , Я знаю, это потому, что запрос mysql содержит ".

Любая идея?

+1

Попробуйте отладить '$ sql' (при необходимости var_dump) и покажите нам, что там. – Vatev

+0

"UPDATE users SET var = 'abc \" def' WHERE id = '457' " –

+3

Вы должны использовать prpared-инструкции для awoud sql-инъекции. Также экранирование специального charater будет выполняться привязкой значения. – Jens

ответ

-2

Вы можете попробовать согласно ценам ниже

SET @qry=CONCAT('UPDATE users SET var = "',REPLACE(@var,'"','\''),'" WHERE id = \'457\''); 
PREPARE stmt FROM @qry; 
EXECUTE stmt; 
DEALLOCATE PREPARE stmt; 
+0

, пожалуйста, также укажите свои замечания для голосования, поскольку этот вопрос также задавался в mysql, поэтому ru не получал решения от этого. –

-1

Перед началом PHP вы должны выучить HTML основы первой.
Кроме того, вы должны понимать разницу между двумя.

Итак, не вините PHP за ваш неполный HTML.
Открытый исходный код страницы и увидеть ваши sss"ddd звук и безопасный, однако портить HTML как этот

<input value="sss"ddd"> 

и теперь проходят каждый вид стоимости через htmlspecialchars()

-1

вы можете попробовать писать запрос, как этот

$var = mysqli_real_escape_string($connection,$_POST['var']); 
$sql = 'UPDATE users SET var = "'.$var.'" WHERE id = "'.$id.'"'; 
Смежные вопросы