【问题标题】:SQL server connection using PHP使用 PHP 的 SQL 服务器连接
【发布时间】:2015-07-09 08:55:24
【问题描述】:

我正在尝试使用 PDO 连接远程 Microsoft SQL 服务器。 在安装所需的驱动程序 (SQLSRV30) 之前,我的 phpinfo() 的配置命令部分显示 -

cscript /nologo configure.js "--enable-snapshot-build" "--without-dblib" "--without-pdo-dblib" "--without-pdo-mssql" "--with-pdo-oci=C:\php-

我已经安装了所需的驱动程序->php_pdo_sqlsrv_54_ts.dll 和 php_sqlsrv_54_ts.dll(我正在使用 PHP 5.4 和 APACHE 服务器)。我还在 php.ini 文件中进行了必要的更改 -

extension=php_pdo_sqlsrv_54_ts.dll
extension=php_sqlsrv_54_ts.dll

尽管如此,当我尝试与 MSSQL Server 建立连接时,出现错误提示 undefined function mssql_connect() 和未定义函数 sqlsrv_connect()

php 信息页面仍然在配置命令部分显示->“--without-pdo-mssql”。

请帮忙解决问题!

PS:1) 使用 ODBC 时,odbc_connect() 函数可以正常工作。 2)我在编辑后刷新了几次Apache。 3) 我已将 .ts 文件保存在 C:\wamp\bin\php\php5.4.12\ext 文件夹中

【问题讨论】:

  • 重启apache后sqlsrv部分是否出现在phpinfo()的输出中?如果没有,请检查您是否编辑了正确的 php.ini(路径也包含在 phpinfo() 的输出中)并检查 php 日志文件是否有启动错误。
  • @VolkerK 不,sqlsrv 部分不会出现在 phpinfo() 中。我检查了 phpinfo(); 中提到的 php.ini 文件;这是我编辑过的同一个文件。 error_log 也表示本地和主值没有值。
  • 然后在 php.ini 中为 error_log 设置一个值,然后重试。例如error_log=c:/temp/php_errors.log 或其他一些有效的文件路径。重新启动 apache 后检查该文件的内容。
  • @VolkerK 除了 sqlsrv_pdo 我还保存了 php_pdo_mssql。他们可以通过任何改变发生冲突吗?
  • sqlsrv_pdo& php_pdo_mssql “他们可以通过任何改变发生冲突吗?” - 不知道,但我对此表示怀疑。

标签: php sql-server pdo sqlsrv


【解决方案1】:

微软提供的 php_sqlsrv_5x_ts.dll 是 32 位的。它们不适用于 64 位构建的 php。
源代码可在https://github.com/azure/msphpsql 获得,因此您可以自己编译 64 位版本 - 如果需要。

【讨论】:

    猜你喜欢
    • 2018-11-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-05-06
    • 1970-01-01
    • 2013-06-17
    相关资源
    最近更新 更多