我遇到过很多关于同一主题的帖子,但是我仍然无法解决,所以我问。我试图在我的PHP脚本中连接到sql。我的连接字符串是:
/* Specify the server and connection string attributes. */
$serverName = "xxx-PC\SQLExpress";
$connectionOptions = array("Database"=>"Salesforce");
$conn = sqlsrv_connect($serverName, $connectionOptions);
if($conn === false)
{
die(print_r(sqlsrv_errors(), true));
}
我已在wamp文件夹下的php.ini
文件中安装并包含以下内容:C:\wamp\bin\php\php5.4.16
:
extension=c:/wamp/bin/php/php5.4.16/ext/php_sqlsrv_53_ts.dll
我的wampserver
运行正常,wampapache
和wampsqld
服务也运行良好。我能够成功执行php.exe。但是,我无法连接到数据库所在的SQL Server 2008 R2
。请帮助!
编辑1:当我尝试连接到SQL Server 2008 R2
时,wamp服务器正在运行wampmysql服务。这可能是原因吗?我应该使用MySQL
而不是SQL
吗?有指针吗?
编辑2:尽管我在wamp服务器的bin文件夹中的sqlsrv
文件中添加了phpinfo()
,但是当我运行extension=php_sqlsrv_54_ts.dll
时,我根本看不到php.ini
部分。
<< img src =“ https://image.soinside.com/eyJ1cmwiOiAiaHR0cHM6Ly9pLnN0YWNrLmltZ3VyLmNvbS9XQWNrVC5wbmcifQ==” alt =“在此处输入图像描述”>
[安装第三方扩展时,需要确保所有编译参数都匹配:
常见故障包括:
php.ini
文件(通常是捆绑销售商品);正确的路径显示在phpinfo()
中。无法看到启动错误;这些应该显示在Apache日志中,但是您也可以使用命令行对其进行诊断,例如:]
php -d display_startup_errors=1 -d error_reporting=-1 -d display_errors -c "C:\Path\To\php.ini" -m
如果一切正常,您应该在命令输出中看到sqlsrv
和/或phpinfo()
(取决于您所配置的SAPI):
[PHP模块]bcmath日历核心[...]声压级sqlsrv标准[...]
This帮助我找到了答案。在我的案例中,有两个php.ini
文件用于清洗。一个在php文件夹下,另一个在C:\wamp\bin\apache\Apachex.x.x\bin
文件夹下。通过sqlsrv_connect
函数连接到SQL时,我们指的是php.ini
文件夹中的apache
文件。将以下内容(根据您的版本)添加到此文件:
extension=c:/wamp/bin/php/php5.4.16/ext/php_sqlsrv_53_ts.dll
如果使用的是Microsoft驱动程序3.1、3.0和2.0。请检查您的PHP版本已随IIS安装。使用此脚本检查php版本:
<?php echo phpinfo(); ?>
或
如果使用Web平台安装程序安装了PHP Manager in IIS,则可以从中检查版本。
然后:如果使用的是新PHP版本(5.6),请下载Drivers from here对于低于5.6的PHP版本-请下载Drivers from here
然后使用PHP管理器将下载的驱动程序添加到php config
文件中。您可以如下所示进行操作(浏览文件并按OK)。然后重新启动IIS服务器
<< img src =“ https://image.soinside.com/eyJ1cmwiOiAiaHR0cHM6Ly9pLnN0YWNrLmltZ3VyLmNvbS80cmlhWi5wbmcifQ==” alt =“在此处输入图像描述”>
如果此方法无效,请更改php版本并尝试运行您的php脚本。
提示:将php version
调低以尝试了解发生了什么,然后您可以下载相关的驱动程序。
首先检查扩展名是否正确加载到phpinfo();
中(应该出现sqlsrv
之类的东西)。如果不是,则扩展名未正确加载。您还需要在安装扩展程序后重新启动apache。
我也有这个,因为在Apache PHPIniDir D:/wamp/bin/php/php5.5.12
的httpd.conf中不正确