【发布时间】:2019-02-15 02:37:16
【问题描述】:
Guys, I tried lots of things mentioned in Stackoverflow and laracasts for this issue but none worked, hence posting this in hope of getting some answer or advice.另外,提供的大部分东西属于MYSQL,而不是MS SQL。
我正在使用 Windows 10 并使用 Laravel 连接到我的 Microsoft SQL Server 2012 Express 版本。
我的 .erv 文件如下:
DB_CONNECTION=sqlsrv
DB_HOST=W1234567\SQLEXPRESS
DB_PORT=1433
DB_DATABASE=My_Database_Name
DB_USERNAME=sa
DB_PASSWORD=My_Password
给定的详细信息是正确的,但是当我运行一个简单的查询时,我在Laravel Model 中收到以下错误消息:
(3/3) QueryException
could not find driver (SQL: SELECT COUNT(*) AS count FROM TBL_Data
WHERE ACTIVE_IND = 1
)
我的 WAMP 运行正常,我已将 SQLSRV 文件添加到我的 WAMP。
整个事情工作正常,现在我将代码移动到不同的系统,我收到了这个错误(两个系统都有相同的凭据,唯一的变化是我更改的服务器名称)所以代码应该正常工作没有进行任何更改。
我尝试检查SQL Server Configuration Manager 中的 SQL Server TCP/IP 端口号并将其更改为 1433 仍然没有成功。
我在这里检查了大部分答案,它们属于 PDO 异常,并要求人们取消注释部分 extension=php_pdo_mysql.dll 但在我的情况下,它的 SQL Server 和正常的 wamp 工作完美,似乎只是 LARAVEL 的问题。
谁能为此提供解决方案?
Edited part below with some more info:
我检查了给定的凭据是否正确,以及我是否能够使用控制器中的一个简单函数连接到 db:
我的路线:Route::get('/Test', 'My_Controller@Test');
我的控制器:
public function Test(Request $request)
{
if(DB::connection()->getDatabaseName())
{
echo "connected successfully to database ".DB::connection()->getDatabaseName();
}
}
Chrome 窗口中的输出:connected successfully to database My_Database_Name
正如我们从上面的消息中看到的,我能够正确连接,但是当我运行查询时仍然出现错误:
(3/3) QueryException
could not find driver (SQL: SELECT * FROM TBL_Data WHERE ACTIVE_IND = 1 )
在控制器中添加phpinfo();并尝试点击URL并获得与PDO相关的以下信息:
PDO support enabled
PDO drivers mysql, SQLite
此处未启用 SQLSRV,这是导致问题的原因吗?
【问题讨论】:
-
您是否安装了
php_pdo_sqlsrv.dll扩展程序? -
是的,我已将它们添加到 php.ini 文件中,我编写了简单的连接测试 PHP 文件并使用 WAMP 进行了测试,我能够使用 WAMP 进行连接,但使用 Laravel 我无法连接。以下是我在 php.ini 文件
extension=php_sqlsrv_56_ts.dll extension=php_sqlsrv_56_nts.dll extension=php_pdo_sqlsrv_56_ts.dll extension=php_pdo_sqlsrv_56_nts.dll中的 sqlsrv 文件 -
Gus 谁能帮助解决这个问题?我仍然收到错误,我尝试重新安装 SQL Server Express 2014 版,希望它与 TCP/IP 端口问题有关,但仍然没有运气,请提供一些建议。
-
将
phpinfo();放入您的控制器并访问页面:是否有pdo_sqlsrv部分? -
@JonasStaudenmeir 添加了 phpinfo();在控制器中并尝试访问该 URL 并获取 PDO 信息,但没有提及 SQLSRV,(我已在底部的上述问题中添加了观察结果,请检查)。这会导致问题吗?如果是这样如何解决这个问题?
标签: php sql-server laravel laravel-5 database-connection