如何正确地将撇号添加到mySQL INSERT命令中

时间:2017-11-25 07:31:05

标签: php mysql database

我正在尝试使用文本区域将一些数据添加到MySQL数据库中。但是,当有人添加撇号时,它会破坏INSERT命令,因为它充当单引号。如何解决这个问题?

如果您规定了我正在使用的所有变量,那么命令将会是什么样子。

INSERT INTO skills09 (name, birthday, skills) VALUES ('Tom Haverford', '31_02_1987', 'Being Awesome, Announcing cool things, Treatin' Yo Self, Failing');

当我看到这个时,我有一个想法。

是否像在我的变量名称周围使用双引号而不是单引号一样简单?这似乎是一个简单的修复,但我总是在MySQL中使用单引号。

2 个答案:

答案 0 :(得分:1)

你可以逃避'带有前面的'

INSERT INTO技能09(名字,生日,技能)价值观('Tom Haverford','31_02_1987','很棒,宣布很酷的东西,对待'哟自我,失败');

它基本上是一个骗局 How do I escape a single quote in SQL Server?

如果您提供了有关您正在使用的语言的更多信息,或者确切了解用户如何形成此sql语句,我可以提供更多信息。例如,你基本上会通过一个函数来运行用户的输入,该函数在将它发送到sql server之前替换'with''(2个单引号)..在sql server中它将被正确存储为'

“转义”字符只是一种不计入结尾单引号的方式,并允许将其添加到插入中。

答案 1 :(得分:0)

PHP How to replace customers text area apostrophes with a escape character

$lastname  = "O'Reilly";
$_lastname = mysqli_real_escape_string($lastname);

$query = "SELECT * FROM actors WHERE last_name = '$_lastname'";