0

我有一个表格,当您选择文章下拉列表时,文本框会填入您选择的内容。现在它工作得非常好,除非文章名称中有“单引号”。

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

现在产生的查询如下:_

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 Workbench 中运行查询,但它什么也没返回。所以我很确定这在我的代码中不是问题。

4

1 回答 1

2

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

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

于 2012-04-28T18:26:22.553 回答