【问题标题】:PHP driver for MSSQL not workingMSSQL 的 PHP 驱动程序不起作用
【发布时间】:2014-05-10 05:40:20
【问题描述】:

我安装的驱动程序有问题,因此我的 MSSQL 可以与 PHP 并行运行...

我在 PHP 的目录文件中放置了以下驱动程序,并编辑了它的 .ini 文件:

  • php_sqlsrv_54_ts.dll
  • php_pdo_sqlsrv_54_ts.dll

我收到以下错误消息:

  • PHP Startup: Unable to load dynamic library 'c:/wamp/bin/php/php5.4.12/ext/php_sqlsrv_54_ts.dll' - %1 is not a valid Win32 application.

  • PHP Startup: Unable to load dynamic library 'c:/wamp/bin/php/php5.4.12/ext/php_pdo_sqlsrv_54_ts.dll' - %1 is not a valid Win32 application.

我有以下关于我的 PHP 和 MSSQL 的信息:

对于 PHP:

  • PHP 版本 5.4.12
  • 通过 WAMP SERVER 安装 PHP
  • 架构 x64
  • 启用线程安全

对于 MSSQL:

  • MSSQL 2014 速成版
  • 我正在使用 Microsoft SQL Server Management Studio 来管理数据库

这些都是以下信息...我在这里搞砸了吗?请帮助我,我还是 PHP 的新手,尤其是 MSSQL .. 干杯!


这是我的代码@JayBhatt,必须更正才能运行以下代码:

<?php
$myServer = "localhost";
$myUser = "sa";
$myPass = "joseph04";
$myDB = "cars";

//connection to the database
$dbhandle = mssql_connect($myServer, $myUser, $myPass)
  or die("Couldn't connect to SQL Server on $myServer");

//select a database to work with
$selected = mssql_select_db($myDB, $dbhandle)
  or die("Couldn't open database $myDB");

//declare the SQL statement that will query the database
$query = "SELECT brand, model, year ";
$query .= "FROM cars ";
$query .= "WHERE brand='Honda'";

//execute the SQL query and return records
$result = mssql_query($query);

$numRows = mssql_num_rows($result);
echo "<h1>" . $numRows . " Row" . ($numRows == 1 ? "" : "s") . " Returned </h1>";

//display the results
while($row = mssql_fetch_array($result))
{
  echo "<li>" . $row["brand"] . $row["model"] . $row["year"] . "</li>";
}
//close the connection
mssql_close($dbhandle);
?> 

【问题讨论】:

  • 另一方面,通过 SA 用户帐户连接到数据库并不明智,因为它可以完全控制每个数据库架构和 mssql 服务器设置。最佳做法是让子用户对单个或几个模式具有足够的权限,具体取决于规模

标签: php sql-server wamp sqlsrv


【解决方案1】:

我遇到了同样的问题,经过大量研究我发现,微软还没有发布 64 位版本的 MSSQL 驱动程序。

您拥有的驱动程序适用于 32 位环境。这就是它无法加载的原因。尝试切换到 WAMP 服务器的 32 位环境,它会工作。

希望这会有所帮助。

【讨论】:

  • 哦,我明白了,如果我只重新安装 WAMP 服务器的 PHP 组件,是否有可能?我将如何做到这一点?谢谢!
  • 不。您还需要 32 位 Apache 服务器。最好的办法是安装整个 32 位 wamp。
  • 谢谢杰伊·巴特!将尝试安装 32 位版本的 WAMP! :)
  • 我还是有问题,好吧我已经下载并安装了32位版本的wampserver,它有php 5.5,我也放置了所需的dll文件但仍然有一个@987654323 @错误当我运行一个简单的测试程序。所以我找到了这个youtube视频youtube.com/watch?v=-UoXk8qJ82Y并按照步骤操作但仍然是同样的错误,然后我还将以下dll放在php的ext目录中:php_ming.dll php_mssql.dll仍然是同样的错误......我很困惑,我现在不知道该怎么办:(请帮助@JayBhatt
【解决方案2】:

您可以获取 PHP 的非官方 x64 SQLSRV 驱动程序。尝试安装它们。这是你的链接。只需将 dll 替换为 x64 dll。

http://robsphp.blogspot.in/2012/06/unofficial-microsoft-sql-server-driver.html

另外你应该用SQLSRV函数来连接数据库。
和 MSSQL 函数。他们都使用不同的驱动程序。
您应该使用“sqlsrv_connect”而不是“mssql_connect”。

参考:http://php.net/manual/en/book.sqlsrv.php

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-04-25
    • 2012-08-03
    • 1970-01-01
    • 1970-01-01
    • 2018-06-23
    • 1970-01-01
    相关资源
    最近更新 更多