mssql php 5.4,MSSQL Server的本地ODBC驱动程序适用于Linux和PHP 5.4

我在Linux Debian 6 x64上有Apache 2.2.16和

PHP 5.4.3.

我以这种方式配置了我的odbc.ini文件:

[mydsn]

Driver = SQL Server Native Client 11.0

Database = datbase

Server = xxx.xxx.xxx.xxx,port

这样我的odbcinst.ini:

[SQL Server Native Client 11.0]

Description=Microsoft SQL Server ODBC Driver V1.0 for Linux

Driver=/opt/microsoft/sqlncli/lib64/libsqlncli-11.0.so.1790.0

Threading=1

UsageCount=1

要测试,我运行以下命令:

$isql -v mydsn dbusername dbpassword

我成功了

+---------------------------------------+

| Connected! |

| |

| sql-statement |

| help [tablename] |

| quit |

| |

+---------------------------------------+

SQL>

然后,使用phpize在PHP 5.4上安装unixODBC,使用:

(使用第一个命令ln -s …,因为./configure在默认位置找不到php的头文件)

$sudo ln -s /usr/include/php5 /usr/include/php

$phpize

$./configure --with-pdo-odbc=unixODBC && make && make test

$sudo make install

在我的phpinfo()我得到:

PDO support - enabled

PDO drivers - odbc

PDO Driver for ODBC (unixODBC) - enabled

ODBC Connection Pooling - Enabled, strict matching

现在是时候用PHP 5.4脚本来测试所有内容了

ini_set('display_errors', 1);

error_reporting(E_ALL);

$conn = new PDO('odbc:DSN=mydsn;UID='.$usr.';PWD='.$psw);

$query = 'select * from my_table';

$stmt = $conn->prepare($query);

$stmt->execute();

while ($row = $stmt->fetch()) {

echo "

";

print_r($row);

echo "

";

}

?>

但它不工作…我收到这个错误信息:

Fatal error: Uncaught exception 'PDOException' with message 'SQLSTATE[01000] SQLDriverConnect: 0

[unixODBC][Driver Manager]Can't open lib '/opt/microsoft/sqlncli/lib64/libsqlncli-11.0.so.1790.0' : file not found'

in /var/www/testemssql.php:17

Stack trace:

#0 /var/www/testemssql.php(17): PDO->__construct('odbc:DSN=mydsn...')

#1 {main} thrown in /var/www/testemssql.php on line 17

所以我的问题是:发生了什么?我缺少什么配置?

如何在Linux和PHP 5.4上正确设置MSSQL Server的Native ODBC驱动程序?

Ps .:当我尝试使用odbc_connect()PHP说该函数不存在.

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值