PHP中文俱乐部's Archiver

抽烟的蚊子 发表于 2007-12-10 12:54

来篇原创:在linux上配置 PHP+PDO-MSSQL 心得

WIN下用PHP读写MSSQL很简单,装上MSSQL客户端,再编辑PHP.INI开个扩展extension=php_mssql.dll ,就OK了. PDO的支持也是如此: extension=php_pdo_mssql.dll

可是linux下就不是那么简单的事情.
有过linux下读写MSSQL数据库经验的朋友,对于freetds这个东西肯定不陌生. 配置相对也不复杂:

[b]先到 [url]http://www.freetds.org/[/url] 下载 源码包 [/b][code]$ cd /tmp
$ wget  [url]ftp://ftp.ibiblio.org/pub/Linux/ALPHA/freetds/stable/freetds-stable.tgz[/url][/code][b]解压并安装[/b][code]$ tar zxvf freetds-stable.tgz
$ ./configure --prefix=/usr/local/freetds
$ make
$ su root
Password:
$ make install[/code][b]然后编译PHP[/b][code]$cd ../php-5.2.5
$./configure --prefix=/usr/local/php \
--with-apxs2=/usr/local/apache/bin/apxs \
.... 其它参数 \
--with-mssql=/usr/local/freetds
[/code](也可以用 --with-sybase=/usr/local/freetds)

[b]make 并 make install[/b][code]$ make
$ su root
Password:
# make install[/code][b]配置[/b][b]freetds[/b][code]# vim /usr/local/freetds/etc/freetds.conf[/code]找到类似的行[code]# A typical Microsoft SQL Server 7.0 configuration      
;[MyServer70]
;        host = 192.168.0.1
;        port = 1433
;        tds version = 7.0[/code]把他们前面的冒号删除,把host改为你的MSSQL服务器主机名或IP地址.port改为自己的端口号,
tds version是SQLserver的版本,2000的是7.0 要是其它的版本,自己查查.

注意:[[color=#ff0000]MyServer70[/color]] 非常重要. 将会在PHP代码中代替 mssql_connect("host","sa",""); 中的 host
关于freetds的其它如 ODBC/tsql/ 配置,请参考 [url]http://www.freetds.org/userguide/[/url]
[b]好了,完成后重启WEB服务. PHPINFO里看看,应该有如图的信息:
[/b] [img]http://www.phpv.net/uploadfile/month_200712/phpinfo_mssql_phpv_1.jpg[/img]
[b]
再用如下代码测试:[/b]
[php]<?php
$conn = mssql_connect("MyServer70", "sa", "password");
mssql_select_db('dbname',$conn);
$msquery = "select firstname,lastname from table";
$msresults= mssql_query($msquery);
while ($row = mssql_fetch_array($msresults)) {
       echo
"<li>" .
$row['titleofcourtesy'] . " " . $row['firstname'] . " " . $row['lastname'] .  "</li>\n";
}
?>[/php]库和表存在并有数据.应该会返回正确的数据了.
如果有问题,查查配置文件是否正常,MSSQL服务器有没有开远程连接,防火墙等等.


到这里,MSSQL是可以用了.但感觉很不爽,PDO应该是PHP以后的标准.所以现在来搞定PDO-MSSQL:

因为有pdo-mysql配置经验,开始时我想当然的在编译PHP5时直接加参数--with-pdo-mssql=/usr/local/freetds
结果./configure时系统返回一个错误.

通过查看./configure --help 才知道,需要通过dblib来做.[code]$cd ../php-5.2.5
$./configure --prefix=/usr/local/php \
--with-apxs2=/usr/local/apache/bin/apxs \
.... 其它参数 \
--enable-pdo \
--with-pdo-sqlite
--with-pdo-mysql=/usr/local/mysql/bin/mysql_config \
--with-mssql=/usr/local/freetds
--with-pdo-dblib=//usr/local/freetds
$ make
$ su root
Password:
# make install[/code]重启apache 刷新phpinfo页面.多了这一项表示成功:
[img]http://www.phpv.net/uploadfile/month_200712/phpinfo_pdo_mssql_phpv_1.jpg[/img]

老习惯,代码验证:
[php] <?php

try {

   $hostname = '192.168.0.1'; //注意,这里和上面不同,要直接用IP地址或主机名
   $port = 1433; //端口
   $dbname = "dbname"; //库名
   $username = "sa"; //用户
   $pw = "password"; //密码
   $dbh = new PDO ("dblib:host=$hostname:$port;dbname=$dbname","$username","$pw");
  } catch (PDOException $e) {
   echo "Failed to get DB handle: " . $e->getMessage() . "\n";
   exit;
  }

echo 'connent MSSQL succeed';

$stmt = $dbh->prepare("select firstname,lastname from table");
  $stmt->execute();
  while ($row = $stmt->fetch()) {
   print_r($row);
  }
  unset($dbh); unset($stmt);

?>[/php]输出正常..搞定!

抽烟的蚊子 发表于 2007-12-10 12:56

回复: 来篇原创:在linux上配置 PHP+PDO-MSSQL 心得

MSSQL新手,有错误之处请各大侠指正.

若桂会 发表于 2009-4-4 00:54

翻身了!三星手机首次采用中国产芯片

[url=http://junshi365.blog.china.com]三星电子[/url]二十七日宣布选定中国展讯通信有限公司作为三星的手机芯片供货商,这是国际主流手机厂商首次采用中国产芯片,也意味着中国手机行业向产业链上端提升了一步。

    展讯通信总裁兼首席执行官李力游表示,供货的两款产品GSM/GPRS和EDGE射频收发器已经具有国际竞争力,向三星供货后,将实现产能的平稳增长。展讯二00七年在纳斯达克上市,是中国第一支在纳斯达克上市的3G概念股票。

    业内人士指出,展讯成功进入三星的采购名单,是中国本土厂商的一个历史性突破。这一方面是价格优势,另一方面,展讯二00八年以七千万美元的价格收购射频收发器设计公司Quorum,建立起来的基带、射频一体化的解决方案,提升了产品竞争力。

    据了解,国际五大主流手机厂商中,诺基亚从德州仪器、意法半导体定制芯片,摩托罗拉主要定制飞思卡尔半导体芯片,三星大部分采用高通的芯片,索爱和LG的WCDMA手机采用爱立信移动平台EMP芯片。  


    随着金融危机对手机制造行业的冲击,手机厂商寻求降低成本和为手机增加新的功能,引发芯片供应商的洗牌,如诺基亚增加了与英飞凌的合作,摩托罗拉则扩大了与德州仪器的供应协议。国际手机芯片厂商的洗牌给中国芯片商提供了机会。

转自:[url=http://junshi365.blog.china.com]http://junshi365.blog.china.com[/url]

蓝兰波 发表于 2009-4-7 00:50

好贴,顶一下楼主!

好贴,顶一下楼主!















[img]http://www.domain.cn/club/images/default/sigline.gif[/img]
古之立大事者,不惟有超世之才,亦必有坚忍不拔之志。---[url=http://www.paoxiaoshuo.com/1/1979/]魔兽剑圣异界纵横[/url]
[url=http://www.wowan.com/]小游戏[/url] [url=http://www.paoxiaoshuo.com/0/477/]极品家丁[/url] [url=http://www.paoxiaoshuo.com/1/1837/]龙蛇演义[/url] [url=http://www.paoxiaoshuo.com/0/296/]恶魔法则[/url] [url=http://www.paoxiaoshuo.com/0/654/]飞升之后[/url] [url=http://www.paoxiaoshuo.com/4/4157/]异界枪神[/url] [url=http://www.paoxiaoshuo.com/1/1737/]凡人修仙传[/url] [url=http://www.paoxiaoshuo.com/2/2340/]魔兽领主[/url] [url=http://www.paoxiaoshuo.com/0/916/]超级农民[/url] [url=http://www.paoxiaoshuo.com/0/477/]极品公子[/url]

页: [1]

Powered by Discuz! Archiver 6.1.0  © 2001-2007 Comsenz Inc.