【问题标题】:Having Issues Connecting to Microsoft SQL Server Express (2008) from PHP从 PHP 连接到 Microsoft SQL Server Express (2008) 时遇到问题
【发布时间】:2009-02-06 05:19:06
【问题描述】:

正如标题所说,我在从 PHP 脚本连接到 MSSQL 时遇到问题。

设置:-

  • PHP 正在 Apache Linux 服务器上运行。
  • Microsoft SQL Server 2008 位于 XP 计算机上。
  • 我在 MSSQL Server 中打开了远程连接。
  • 数据库 bggs 确实存在。
  • 数据库正在运行(我可以看到一个绿色箭头)。
  • 我在 XP 机器上没有防火墙。

如果您有任何调试问题,请随时提出。

我正在使用以下测试脚本。

<?php
    include('adodb5/adodb.inc.php');
    $db =& ADONewConnection('odbc_mssql');
    $db->debug = true;
    $dsn = "Driver={SQL Server};Server=ozmodiar;Database=bggs;";
    $db->Connect($dsn,'user','password');
    $rs = $db->Execute('select * from admin_users');
    print "<pre>";
    print_r($rs->GetRows());
    print "</pre>";
?>

得到以下结果。

警告: odbc_connect() [function.odbc-connect]: SQL 错误: [unixODBC][Driver Manager]Data source name not found, and no default driver specified, SQL state IM002 in SQLConnect in /mnt/filestore/vhost /bggs/hr_database/Dev/includes/adodb5/drivers/adodb-odbc.inc.php 在第 60 行 (odbc_mssql):设置 CONCAT_NULL_YIELDS_NULL 关闭
警告:odbc_exec():在第 530 行的 /mnt/filestore/vhost/bggs/hr_database/Dev/includes/adodb5/drivers/adodb-odbc.inc.php 中提供的参数不是有效的 ODBC-Link 资源 IM002: [unixODBC][Driver Manager]未找到数据源名称,且未指定默认驱动程序

ADOConnection._Execute(SET CONCAT_NULL_YIELDS_NULL OFF, false) % 第 1017 行,文件:adodb.inc.php ADOConnection.Execute(SET CONCAT_NULL_YIELDS_NULL OFF) % 第 62 行,文件:adodb-odbc.inc.php ADODB_odbc._connect(Driver={SQL Server};Server=192.168.70.130;Database=bggs;, sa, knd121, ) % 第 524 行,文件:adodb.inc.php ADOConnection.Connect(Driver={SQL Server};Server=192.168.70.130;Database=bggs;, sa, knd121) % 第 9 行,文件:test_db.php

Driver={SQL Server};Server=192.168.70.130;Database=bggs;: [unixODBC][Driver Manager]未找到数据源名称,且未指定默认驱动程序 (odbc_mssql):从管理员用户中选择 *
警告:odbc_exec():在第 530 行的 /mnt/filestore/vhost/bggs/hr_database/Dev/includes/adodb5/drivers/adodb-odbc.inc.php 中提供的参数不是有效的 ODBC-Link 资源 IM002: [unixODBC][Driver Manager]未找到数据源名称,且未指定默认驱动程序

ADOConnection._Execute(select * from admin_users, false) % line 1017, file: adodb.inc.php ADOConnection.Execute(select * from admin_users) % line 10, file: test_db.php

致命错误:在第 12 行的 /mnt/filestore/vhost/bggs/hr_database/Dev/includes/test_db.php 中的非对象上调用成员函数 GetRows()

【问题讨论】:

    标签: php sql-server tsql connect


    【解决方案1】:

    免责声明:我只从 Microsoft SQL Server 2000 查询数据,但通过 PDO_DBLIB 查询数据,尽管我相信为 ADODB 或 PDO_DBLIB 提供 freetds 驱动程序的先决条件是肯定的。

    从最初的错误消息来看,您没有安装必要的驱动程序。为了让您的应用程序能够访问服务器,您需要安装 freetds,它将安装必要的驱动程序并允许您设置 ODBC 连接。签出:http://www.linuxjournal.com/article/6636

    请务必注意,您需要在 freetds 全局配置或特定 OBDC 连接(debian 上默认为 /etc/freetds/freetds.conf)中正确设置“tds version = x.x”,或者 freedtds 使用的协议您的服务器将不正确,脚本将被炸毁。

    【讨论】:

    • 我已经关注了那篇文章,但现在我遇到了这个错误:tsql -S OZMODIAR -U bggs Password: Msg 20009, Level 9, State -1, Server OpenClient, Line -1 Unable连接: Adaptive Server 不可用或不存在 连接到服务器时出现问题 谢谢!
    猜你喜欢
    • 2010-10-28
    • 2016-12-26
    • 1970-01-01
    • 2010-10-27
    • 1970-01-01
    • 2012-04-21
    • 1970-01-01
    • 2015-03-19
    • 2013-12-15
    相关资源
    最近更新 更多