PHP 中 MySQL 查询和 MSSQL 查询的区别

本文介绍了在使用PHP连接MSSQL过程中遇到的文本长度限制及字符串转义问题,并提供了具体的解决方案,包括调整php.ini配置和使用自定义函数进行字符串转义。
 

以前只用 PHP + MySQL,从来没在 PHP 中用过 MSSQL,今天转过来的那个站点正好用的是 MSSQL。刚给他调好了 Register Globals 问题,又一个奇怪的问题就来了。他说他这个系统里面发的新闻有的内容能发,有的不能发,有的能改,有的不能改了。还说以前用着没事。后来发现有两个问题,一个是 php.ini 中有两个选项会影响查询的内容长度。这两个选项是 mssql.textlimit 和 mssql.textsize,把他们改的尽量大一点就好了。另外还有个问题就是 MSSQL 的查询语句跟 MySQL 不太一样,在字符串转义时不是用 /,而是把一个单引号写成两个单引号。这些都是从 PHP 手册的用户注释中发现了,看来 PHP 用户手册的注释真是个好东西。里面还提供了一段程序,用于对 MSSQL 语句中的字符串进行转义编码:

PHP代码
  1. <?php   
  2. function escapeSingleQuotes($string){   
  3.     //escapse single quotes   
  4.     $singQuotePattern = "'";   
  5.     $singQuoteReplace = "''";   
  6.     return(stripslashes(eregi_replace($singQuotePattern$singQuoteReplace$string)));   
  7. }   
  8. ?>  

把这个函数用上以后,又改了那两个选项,一切问题就都解决了。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值