Microsoft Drivers for PHP for SQL Server

Filed under: 开发编程 | No Comments »
Posted on

接上篇讲述如何在windows下配置PHP操作MS SQL SERVER。

Drivers for for SQL Server(点此下载)是微软官方出的,经过实际测试,这个方案是最完美的也是最简单的。

环境要求:

1.任何windows操作系统

2.PHP 5.2.4 , or later.

3.Microsoft SQL Server 2008 R2 Native Client(点此下载

4.Any edition of SQL Server 2005 or later.

配置方法:
1.下载后,点击执行SQLSRV20.EXE解压缩到任意目录

2.如上图,选择对应版本的dll文件复制到PHP安装目录的EXT目录下(不知道php版本的,可以运行一下phpinfo函数查看)

3.修改php.ini,增加一条extension=你选择的dll,我选择的是php_sqlsrv_53_nts_vc9.dll,因此我的php.ini里增加的便是extension=php_sqlsrv_53_nts_vc9.dll

4.重启web服务器,大功告成。

具体的调用方法可以查看SQLSRV_Help.chm

经过实际使用,不管是一般的SQL语句还是存储过程,都能在PHP下得到很好的操作

Tags : , , ,

最简单的windows下配置PHP操作MS SQL

Filed under: 开发编程 | No Comments »
Posted on

windows下PHP自带的php_mssql.dll在配置的时候容易出现各种各样的错误。这里我要推荐另外一个扩展——_dblib.dll

1.首先下载

http://docs.moodle.org/20/en/Installing_MSSQL_for_PHP#Using_FreeTDS_on_Windows

网站提供四个下载,分别是PHP 5.2.x (vc6) Thread Safe、 PHP 5.2.x (vc6)  Non Thread Safe、PHP 5.3.x (vc9)  Thread Safe、PHP 5.3.x (vc9)  Non Thread Safe,找到符合自己要求的(phpinfo就能查到)下载

2.下载后解压缩,将php_dblib.dll复制到php环境的ext目录下

3.php.ini中增加一句extension=php_dblib.dll

4.重启web服务器(、nginx等等)

  1. <?php
  2. $link = mssql_connect('localhost', 'db_user', 'db_password');
  3. if(!$link) {
  4. echo'Could not connect';
  5. die('Could not connect: ' . mssql_error());
  6. }
  7. echo'Successful connection';
  8. mssql_close($link);
  9. ?>

执行一下以上PHP代码——Successful connection,大功告成。

经测试,在windows2003和windows2008下,能很好的操作ms sql server 2005数据库。

补充:悲剧的是,在实际运行过程中,发现对存储过程支持的并不好。于是,又折腾了半天,找到了另外一个替代方案,下一篇文章再来讲这个替代方案。

Tags : , , , ,

我只能说IE6是万恶的

Filed under: 互联网络 | 2 Comments »
Posted on

下午有代理反应广告不显示,必须刷新一下才能显示。

so,开始排查问题

1.客户机DNS缓存问题——排除

2.锁定浏览器类型,无一例外均为IE6。于是乎想到,6 JS中如果包含iframe,在某些情况下必须刷新才能执行——但是最后排除了这个可能。最后让我想到了另外一个可能性——6不支持GZIP。so, 禁用服务器nginx上的GZIP配置,重启通知代理测试,结果能正常显示了。

我还能怎么说呢,只能说IE6是万恶的……

Tags : , ,

恼人的UTF-8 BOM

Filed under: 开发编程 | No Comments »
Posted on
猫猫举报说奥运竞猜的页面样式有问题,昨天下午开始仔细的检查检查再检查:
1.样式表的问题排除
2.页面编码方式可能导致的问题排除
百思不得其解,这种莫名的问题老实说第一次碰到。
快下班的时候无意中发现我新装的EditPlus3的保存选项中UTF-8标识选的“总是加入签名”,印象中这个选项是“总是删除签名”,于是尝试着把这个选项改掉,然后把奥运竞猜的程序全部重新另存一遍上传到服务器——OK,页面样式对了。
问题是解决了,但是为何这个“签名”会导致这种问题?万能的Google告诉我:
-8 是一种在web应用中经常使用的一种   字符的编码方式,使用 -8  的好处在于它是一种变长的编码方式,对于 ANSII 码编码长度为1个字节,这样的话在传输大量 字符集的网页时,可以大量节约网络带宽。使用 utf-8 编码来编写网页的时候, 往往会因为 (Byte Order Mark)  的问题,导致网页中经常出现一些不明的空行或者乱码字符。 这些都是因为 utf-8 编码方式对于 不是强制的。因此 utf-8 编码在保存文件的时候,会出现不同的处理方式。比如有的浏览器()可以自动过滤掉所有 utf-8 , 有的 () 只能过滤掉一次 (为什么是一次? 当你出现 Include 多次文件时就会碰上这个问题了)。
 
对此 w3.org 标准 FAQ 中对此问题有一个专门的描述: http://www.w3.org/International/questions/qa-utf8-bom

IE的cookie限制

Filed under: 开发编程 | No Comments »
Posted on

今天在使用php进行cookie开发的时候发现,只能用最多10个数组元素,之后cookie值就乱了,查了查原因,原来是IE对cookie有限制.

名称 – 值对每个 开头。 此对由零或详细属性 – 值对由分号分隔的后面。 对于一个域名, 每个 仅限于 4,096 字节。 这个总数可存在作为一个名称 – 值对的 4 千字节 (KB) 或作为最多 20 名值 pairs 总该 4KB。 如果计算机没有足够空间来存储 , 丢弃该 。 则将不被截断。 应用程序应使用尽可能少 尽可能和作为小型作为尽可能。 此外, 应用程序应该能够处理一个 丢失。

如果 Web 应用程序使用多 19 自定义 Cookie, 会话状态可能丢失。 Internet Explorer 4.0 和更高版本允许总共 20 Cookie 对于每个域。 浏览器因为如果使用 20 或更自定义 Cookie, ASPSessionID 是 Cookie, 将强制删除 ASPSessionID Cookie 和会话丢失。

来存储对于域, 20 多名称 – 值对由串联几对各个 Cookie 到 4,096 字节限制为该 Cookie 名称 – 值对创建一个 cookie 词典。 当前, 来检索这些值来自客户端脚本, 您必须分析 Cookie 手动。 但是, ActiveServerPages 请求 和 响应 对象包括内置功能使用 Cookie 词典作为词典对象。

在firefox下不存在这个问题.

Tags : ,