2015-11-16 573 views
0

如何在MySQL中插入一个由单引号或双引号组成的值。即在MySQL中插入一个包含单引号的值

Ali said, "This is Ashok's Pen." 

单引号会产生问题。可能还有其他转义字符。

我使用php输入数据到数据库中?

如何正确插入数据?

+0

阅读[mysql_real_escape_string(HTTP:// php.net/manual/en/function.mysql-real-escape-string.php) – Saty

+1

你需要以某种方式逃避它,使用mysqli_real_escape_string或甚至更好的PDO和准备好的语句。 –

+0

*“我使用php输入数据到数据库?“ - - 我不知道,你?显示你的SQL代码。 –

回答

1

您需要使用\(转义)字符插入单引号和双引号

INSERT INTO table_name(`clomn1`) VALUES ('Ali said, "This is Ashok\'s Pen."') 

希望这有助于

+0

什么是逗号和双数的转义? –

+0

您需要使用\(Escape)字符插入单引号和双引号。 –

+0

首先,没有解释逗号,第二,适用于与封装相同类型的引号,而不是每个可用的引用。 –

-1

使用mysqli_real_escape_string()mysqli_real_escape_string

+0

手动:此扩展在PHP 5.5.0中已弃用,并且已在PHP 7.0.0中删除。相反,应该使用MySQLi或PDO_MySQL扩展。虽然这不是我的失望。 –

+0

@Kostas Mitsarakis是的,你是对的。用mysqli_real_escape_string编辑 –

0

你逃跑用 '\',或者您可以使用PHP的mysqli_real_escape_string()函数。 。

$q = "select * from users where comment = mysqli_real_escape_string($comment)

+1

'where'comment''是一列,而不是一个字符串。 –

+0

不要使用addslashes ..... addslashes不知道你正在使用什么数据库,所以它不知道你的数据库使用了什么转义字符,或者什么字符需要转义....大多数db接口都有一个函数处理转义,将使用适当的字符,并为适当的字符,需要逃避.....但准备好的语句是迄今为止更好的选择,即使比那 –

+0

谢谢,我已经更新了我的答案,包括mysqli_real_escape_string()而不是和addslashes。 @ Fred-ii-很好的捕获,更新。 – IsThisJavascript