使用在线编辑器的问题

phchenjie 2006-06-14 01:51:58
我用的是HTMLArea, php.ini中设置了 magic_quotes_gpc = On; 所以在线编辑器POST过去的数据中自动+上了反斜杠.但是如果内容用有 \' 组合的时候,会造成SQL语句出错(SQL 2000,有未闭合的引号)..

这个该咋整啊?...

本菜鸟第一次使用在线编辑器,请有经验的朋友赐教,谢谢
...全文
232 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
Gdj 2006-06-15
  • 打赏
  • 举报
回复
mssql里好象是要把'替换成''
phchenjie 2006-06-15
  • 打赏
  • 举报
回复
不知道有没有理解对唠叨老大说的意思,因为SQL Server 2000的语句中VALUES的值需要用单引号括起来.比如,INSERT INTO usertable (COL1,COL2) VALUES ('$var1','$var2');只要$var1或者$var2的内容中含有单引号,SQL语句就出错.

php.ini中对magic_quotes_sybase的说明是
Use Sybase-style magic quotes (escape ' with '' instead of \').

这样还是会出错啊..我从来没注意过这个问题,以前用MySQL做的时候也没注意过.请老大再详细解释下,感激不尽啊.
Gdj 2006-06-14
  • 打赏
  • 举报
回复
function gstripslashes($str)
{
if(is_array($str)){
foreach($str as $k=>$v)
$str[$k]=gstripslashes($v);
}else $str=stripslashes($str);
return $str;
}

set_magic_quotes_runtime(0);
if(get_magic_quotes_gpc()){
$_POST=gstripslashes($_POST);
$_GET=gstripslashes($_GET);
$_FILES=gstripslashes($_FILES);
}

如果不能改服务器参数。想办法自己加校验吧。把这几行加在你程序的顶端试试。
xuzuning 2006-06-14
  • 打赏
  • 举报
回复
SQL 2000???
magic_quotes_sybase=On

SQL 2000属于sybase系列数据库,需要转义“'”为“''”
coder1 2006-06-14
  • 打赏
  • 举报
回复
帮顶

21,886

社区成员

发帖
与我相关
我的任务
社区描述
从PHP安装配置,PHP入门,PHP基础到PHP应用
社区管理员
  • 基础编程社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧