【问题标题】:Using PHP to connect to SQL Server使用 PHP 连接 SQL Server
【发布时间】:2012-03-12 16:30:55
【问题描述】:

我正在使用 php 连接到名称中有连字符的 SQL Server 表,返回的错误是

警告:mssql_select_db() [function.mssql-select-db]:消息:无法在 sysdatabases 中找到数据库“SMD”的条目。未找到具有该名称的条目。确保输入的名称正确。 (严重性 16)在 C:\xampp\xampp\htdocs\second.php 第 12 行

警告:mssql_select_db() [function.mssql-select-db]:无法选择数据库:第 12 行 C:\xampp\xampp\htdocs\second.php 中的 SMD-GROUP
无法打开数据库 SMD-GROUP

代码是

    $myDB = "SMD-GROUP"; 
     $selected = mssql_select_db($myDB, $dbhandle)
     or die("Couldn't open database $myDB"); 

【问题讨论】:

  • 尝试用括号将它们包装为“[SMD-GROUP]”
  • PHP 的 MSSQL 驱动程序已经过时,事实上 PHP 5.3 已停止使用。您应该考虑切换到 Microsoft 的 SQL Server Driver for PHP (SQLSRV):msdn.microsoft.com/en-us/sqlserver/ff657782.aspx
  • 尝试阅读您正在使用的函数的文档。那里有介绍。

标签: php sql-server


【解决方案1】:

看看http://php.net/manual/en/function.mssql-select-db.php:

要对包含空格、连字符(“-”)或任何其他特殊字符的数据库名称进行转义,数据库名称必须用括号括起来。

【讨论】:

    【解决方案2】:

    如果您使用的是 MSSQL server 2005 或更高版本.. 您应该使用 Microsoft 的 SQLSRV 驱动程序。 请注意,由于 PHP5.4 及更高版本的未解决错误,性能仍然无法胜任。 您应该知道您的 PHP 是在 VC6 还是 VC9 上编译的,以及它是否是线程安全的。最好查看此参考 http://php.net/manual/en/book.sqlsrv.php

    请记住,php_mssql.dll 在 PHP5.4 及更高版本上已被弃用。 此外,我已经在我们的 UAT 和生产服务器上对此进行了测试。干杯!

    【讨论】:

      【解决方案3】:

      如果使用 PDO 类与 PHP 进行数据库连接会更好,因为 PDO 支持多个 DB 驱动程序并且得到更好的支持。 PHP Data Objects

      $DB=new PDO('dblib:host='.$host.';dbname='.$database,$username,$password);
      

      【讨论】:

        猜你喜欢
        • 2015-10-30
        • 2014-02-05
        • 1970-01-01
        • 1970-01-01
        • 2013-09-09
        • 2015-09-03
        • 1970-01-01
        • 2022-11-21
        • 2011-12-03
        相关资源
        最近更新 更多