php - Laravel 和 MS SQL Server 数据库连接抛出错误 "(3/3) QueryException could not find driver"

标签 php sql-server laravel laravel-5 database-connection

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:
我检查了给定的凭据是否正确,以及我是否能够使用 Controller 中的一个简单函数连接到数据库:
我的路线:Route::get('/Test', 'My_Controller@Test');
我的 Controller :
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 )

在 Controller 中添加 phpinfo(); 并尝试点击 URL 并获得与 PDO 相关的以下信息:
PDO support enabledPDO drivers mysql, SQLite
此处未启用 SQLSRV 这是导致问题的原因吗?

最佳答案

This did NOT work for me but may work for some people hence posting this answer, hope this will be helpful
我尝试更改 SQL Server 的端口号,但仍然无法正常工作,如果有人想尝试,可以尝试一下,看看这是否可行。
The issue was with MS-SQL Server 2012 Express didn't have port 1433 in the SQL Server Configuration Manager > SQL Server Network Configuration > TCP/IP > Properties> TCP Port was BLANK! Just type 1433 and restart the services and BAM!! Like Magic!

关于php - Laravel 和 MS SQL Server 数据库连接抛出错误 "(3/3) QueryException could not find driver",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52261535/

相关文章:

javascript - PHP - 在提交后调用函数?

php - 在 Laravel 的迁移中向现有表添加新列

sql-server - 无法导入为空值 SQL Server 2008 TSV 文件

Laravel-在用户登录时删除身份验证用户帐户

php - 需要 ext-fileinfo。如何将其添加到我的 composer.json 文件中?

php - 剑道网格点击新的更新按钮没有努力

php - 在 Laravel 中使用 request->all 保存所有记录记录

sql - 检查 SQL 表列中数据的可用性?

sql-server - 如何在 SQL Server 2012 中获取最后插入的 ID

php - Laravel Entrust,查询用户没有角色的地方