我有一个表单,当您选择文章下拉列表时,文本框中会填写您选择的内容。现在它工作得很好,除了文章名称中有"单引号"时。
我有一个通过在引号前面放置反斜杠来转义引号的功能,它确实如此......
现在生成的查询如下:_
SELECT * FROM blogs WHERE title='MySQL 'Inject' AND series='iOS Game Dev.' AND language='iOS' LIMIT 1
我有一个函数,它可以制作文章的对象,并根据所选行设置所有内容的值。当我显示由运行查询的函数创建的数组时,它会给出这个..
Blog Object
(
[id] =>
[title] =>
[publish_date] =>
[author] =>
[language] =>
[series] =>
[likes] =>
[content] =>
[position] =>
[status] =>
[last_updated] =>
)
如果文章名称中没有单引号,它有效,但它不会填充文本框,因为数组为空。
超过存储在数据库中的标题值是 MySQL \'Inject 。所以我真的不明白为什么它要这样做,我什至尝试在 MySQL 工作台中运行查询,但它没有返回任何内容。所以我很确定这在我的代码中不是问题。
我建议你省去担心转义的所有痛苦,只使用预准备语句,将变量作为参数传递到其中。
这篇博客文章有一个很好的教程。