2010-08-29 168 views
0

当我从textarea插入值时,我的sql查询没有在'&'字符后插入数据。'&'所有字符都在数据库中更新。我正在使用mysql_real_escape_string()函数。 这些特殊字符应该如何处理?&(&符号)字符未插入数据库

+0

你能显示整个代码或至少几行哪里发生这种情况? – shamittomar 2010-08-29 06:33:41

回答

-1

你的php.ini中是否也启用了魔术引号?这可能会导致一些陷阱。

您可以通过在新的页面中运行该代码来检查它。

if(get_magic_quotes_gpc()) 
    echo "Magic quotes are enabled"; 
else 
    echo "Magic quotes are disabled"; 

如果您启用了魔术引号,并尝试使用mysql_real_escape_string,则可以双重转义事物。其他要检查的内容:文本是否太长而无法放入适当的列中? MySQL截断数据以适应,而不是抛出太大的错误。

+0

我在活服务器上工作。我无法修改php.ini文件。是另一种方式吗? – 2010-08-29 06:31:01

+0

猜测不是一个好程序员应该依赖的东西 – 2010-08-29 06:40:03

+0

mysql_real_escape_string()函数不能使用'&'字符? – 2010-08-29 06:42:13

1

不,与这个角色无关。
但是你一定要调试你的代码看看你的数据发生了什么。
通过追踪从textarea到数据库的整个路径。
很可能它甚至不存在于查询中。您最少打印此查询并检查它是否正确。如果没有 - 追溯。在脚本的各个位置打印textarea数据,以捕捉“&”号丢失的位置。

0

Probabaly值得确认你是用引号将字符串括起来。否则,我们将需要更多的细节!

错误:

UPDATE table SET value = & WHERE field = 'foo' 

右:

UPDATE table SET value = '&' WHERE field = 'foo' 
相关问题