将单个(')插入数据库失败

时间:2016-11-14 05:40:25

标签: php

我有一个名为“eventName”的输入字段。每次我将单引号(例如叔叔的生日)都不会插入数据库。我的意思是根本没有数据会发布到数据库。系统只会说事件已保存,但数据库中没有存储数据。

3 个答案:

答案 0 :(得分:1)

你需要逃避单引号。在这种情况下使用的转义字符,您可以使用内置函数,如mysqli_escape_string或add-slashes。

在变量中添加单引号并将其添加到查询时,这将通过将单引号视为注释来更改查询。 e.g

Insert into Table ('name') values ('uncle's birthday');

你的查询在叔叔结束,之后的部分不予考虑,基本上会导致失败。您应该检查错误代码,具体取决于您使用的数据库。

更新

$ eventName = add_slashes($ _ POST [' eventName']);

答案 1 :(得分:1)

不要简单地添加斜杠,而应考虑准备好的语句,从而防止SQL注入攻击。有关详细信息,请访问:How can I prevent SQL injection in PHP?

答案 2 :(得分:0)

最好在将值写入数据库之前转义值。

$ escapedName = mysqli_real_escape_string($ _ POST ['eventName']);