单引号显示为空的查询


query with single quote shown as empty

我有一个表单,当您选择文章下拉列表时,文本框中会填写您选择的内容。现在它工作得很好,除了文章名称中有"单引号"时。

我有一个通过在引号前面放置反斜杠来转义引号的功能,它确实如此......

现在生成的查询如下:_

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 工作台中运行查询,但它没有返回任何内容。所以我很确定这在我的代码中不是问题。

我建议你省去担心转义的所有痛苦,只使用预准备语句,将变量作为参数传递到其中。

这篇博客文章有一个很好的教程。