设为首页 收藏本站
查看: 1683|回复: 0

[经验分享] PHP 通过PDO 连接SQL Server 方式 (两种)

[复制链接]

尚未签到

发表于 2018-10-11 11:09:01 | 显示全部楼层 |阅读模式
WIN下用PHP读写MSSQL很简单,装上MSSQL客户端,再编辑PHP.INI开个扩展extension=php_mssql.dll ,就OK了. PDO的支持也是如此: extension=php_pdo_mssql.dll  可是linux下就不是那么简单的事情.
  有过linux下读写MSSQL数据库经验的朋友,对于freetds这个东西肯定不陌生. 配置相对也不复杂:
  先到http://www.freetds.org/下载 源码包
代码:$ cd /tmp  $ wgetftp://ftp.ibiblio.org/pub/Linux/ALPH...tds-stable.tgz
解压并安装代码:$ tar zxvf freetds-stable.tgz  $ ./configure --prefix=/usr/local/freetds
  $ make
  $ su root
  Password:
  $ make install
然后编译PHP代码:$cd ../php-5.2.5  $./configure --prefix=/usr/local/php
  --with-apxs2=/usr/local/apache/bin/apxs
  .... 其它参数
  --with-mssql=/usr/local/freetds
(也可以用 --with-sybase=/usr/local/freetds)  make 并 make install
代码:$ make  $ su root
  Password:
  # make install
配置freetds代码:# vim /usr/local/freetds/etc/freetds.conf找到类似的行代码:# A typical Microsoft SQL Server 7.0 configuration  ;[MyServer70]
  ;        host = 192.168.0.1
  ;        port = 1433
  ;        tds version = 7.0
把他们前面的冒号删除,把host改为你的MSSQL服务器主机名或IP地址.port改为自己的端口号,  tds version是SQLserver的版本,2000的是7.0 要是其它的版本,自己查查.
  注意:[MyServer70] 非常重要. 将会在PHP代码中代替 mssql_connect("host","sa",""); 中的 host
  关于freetds的其它如 ODBC/tsql/ 配置,请参考http://www.freetds.org/userguide/
  好了,完成后重启WEB服务. PHPINFO里看看,应该有如图的信息:

  再用如下代码测试:
PHP 代码:库和表存在并有数据.应该会返回正确的数据了.  如果有问题,查查配置文件是否正常,MSSQL服务器有没有开远程连接,防火墙等等.
  到这里,MSSQL是可以用了.但感觉很不爽,PDO应该是PHP以后的标准.所以现在来搞定PDO-MSSQL:
  因为有pdo-mysql配置经验,开始时我想当然的在编译PHP5时直接加参数--with-pdo-mssql=/usr/local/freetds
  结果./configure时系统返回一个错误.
  通过查看./configure --help 才知道,需要通过dblib来做.
代码:$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
重启apache 刷新phpinfo页面.多了这一项表示成功:
  老习惯,代码验证:
PHP 代码:输出正常..搞定!  2008.05.06更新:
  如果读出来是乱码,请试试在/usr/local/freetds/etc/freetds.conf中找到[global]
  在下面加一行
  client charset = utf8



运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.iyunv.com/thread-620314-1-1.html 上篇帖子: SQl Server 2008之Merge示例 下篇帖子: SQL Server -- SQL Alias(别名)
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表