我在WordPress环境中使用php / mysql有一个insert语句,当有人创建一个在标题中有撇号的新条目(如Mike's Post)时,数据库会在名称中添加一个\。所以它看起来像迈克的帖子在mysql中。如何在执行sql插入时将其删除,以便将其作为Mike的Post插入。我不确定Wordpress是否会阻碍并使事情复杂化。
注意:stripslashes到目前为止没有任何操作,我在共享主机上,所以我无法访问php.ini,但我认为魔术引号已经开启。
echo "<td><a href=\"http://example.com?writing=$all[SID]\">$all2[name]</a></td>";
答案 0 :(得分:0)
不关心这个角色。只是为了安全使用mysql_ *函数。
请检查php.ini中的magic_quotes_gpc
选项。
if(get_magic_quotes_gpc()){ //enabled
//Auto stripped without the slashes when you select the row .
} else { //disabld
//Please use stripslashes to stripped slashes.
$col = stripslashes($row['col']);
}
stripslashes()函数
在需要的字符之前返回带反斜杠的字符串 逃过一劫。这些字符是单引号('),双引号(“), 反斜杠()和NUL(NULL字节)。
答案 1 :(得分:0)
有人提出了一个接近的答案。然而,问题在于,尽管它仍在添加\,但最有可能启用了魔术引号。因此,真正的解决方案所在的else语句没有被执行。解决方案,至少在Wordpress中,只需将其添加到循环中,但不是if ... else。
foreach ($row1 as $row2) {
$strip = stripslashes($row2['col']);
echo "<td><a href=\"http://example.com\">$strip</a></td>";