linux下php 加装mssql模块

发布于 2022-10-15 07:17:01 字数 2771 浏览 15 评论 0

linux下php 加装mssql模块

在linux 下的php连接mssql,就需要安装第三方的freetds了。
1、安装配置freetds

  1. wget http://mirrors.xmu.edu.cn/ubuntu/archive/pool/main/f/freetds/freetds_0.82.orig.tar.gz
  2. tar zxf freetds_0.82.orig.tar.gz
  3. cd freetds_0.82
  4. ./configure --prefix=/usr/local/freetds --with-tdsver=8.0 -–enable-msdblib -–enable-dbmfix -–with-gnu-ld -–enable-shared -–enable-static
  5. make && make install

复制代码2、编译php的mssql模块

cd /path/to/php/source 进入PHP源码目录
cd ext/mssql 进入MSSQL模块源码目录
/usr/local/webserver/php/bin/phpize 生成编译配置文件
./configure –with-php-config=/usr/local/webserver/php/bin/php-config –with-mssql=/usr/local/freetds
make
make install

编译完成生成 mssql.so,修改php.ini,将该模块载入:

  1. extension=”/path/to/extension/mssql.so”

复制代码3、配置mssql

  1. cd /usr/local/freetds/etc
  2. 编辑文件:
  3. vi freetds.conf
  4. [global]
  5. # TDS protocol version
  6. ; tds version = 4.2
  7. # Whether to write a TDSDUMP file for diagnostic purposes
  8. # (setting this to /tmp is insecure on a multi-user system)
  9. ; dump file = /tmp/freetds.log
  10. ; debug flags = 0xffff
  11. # Command and connection timeouts
  12. ; timeout = 10
  13. ; connect timeout = 10
  14. # If you get out-of-memory errors, it may mean that your client
  15. # is trying to allocate a huge buffer for a TEXT field.
  16. # Try setting ‘text size’ to a more reasonable limit
  17. text size = 64512
  18. client charset = UTF-8 #加入
  19. #加入
  20. [Server2005]
  21. host = 192.168.x.x
  22. port = 1433
  23. tds version = 7.2

复制代码4、测试php连接mssql

  1. <?php
  2. try {
  3. $hostname='218.x.x.x';//注意,这里和上面不同,要直接用IP地址或主机名
  4. $port=1433;//端口
  5. $dbname="user";//库名
  6. $username="database";//用户
  7. $pw="passwd";//密码
  8. $dbh= new PDO("dblib:host=$hostname:$port;dbname=$dbname","$username","$pw");
  9. } catch (PDOException $e) {
  10. echo"Failed to get DB handle: ".$e->getMessage() ."n";
  11. exit;
  12. }
  13. echo'connent MSSQL succeed';
  14. $stmt=$dbh->prepare("select * from z_2010pinjiu_user");
  15. $stmt->execute();
  16. while ($row=$stmt->fetch()) {
  17. print_r($row);
  18. }
  19. unset($dbh); unset($stmt);
  20. ?>

复制代码

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文