【发布时间】:2019-05-16 21:00:35
【问题描述】:
我的环境文件
DB_CONNECTION=sqlsrv
DB_HOST=DESKTOP-ATB1EFG
DB_DATABASE=frontdesk
DB_USERNAME=sa
DB_PASSWORD=something_secret123
DB_PORT=1433
我已经用原始 php 进行了如下测试,它已成功连接并返回“已连接”字符串。
serverName = "DESKTOP-ATB1EFG";
$connectionOptions = array(
"Database" => "frontdesk",
"Uid" => "sa",
"PWD" => "something_secret123"
);
//Establishes the connection
$conn = sqlsrv_connect($serverName, $connectionOptions);
if($conn){
echo "Connected!";
}else{
echo "Failed";
}
但是,当我尝试使用 php artisan migrate 进行迁移时,它返回 QueryExeption
找不到驱动程序 (SQL: select * from sysobjects where type = 'U' 和名称 = 迁移)
异常跟踪:
1 PDOException::("找不到驱动程序")
C:\wamp64\www\frontdesk.sys\vendor\laravel\framework\src\Illuminate\Database\Connectors\Connector.php:70
2
PDO::__construct("dblib:host=DESKTOP-ATB1EFG:1433;dbname=frontdesk;charset=utf8", “sa”,“something_secret123”,[]) C:\wamp64\www\frontdesk.sys\vendor\laravel\framework\src\Illuminate\Database\Connectors\Connector.php:70
我已经检查了 php 7.2.10,它已经启用了扩展
extension=php_sqlsrv_72_nts_x64.dll
extension=php_pdo_sqlsrv_72_nts_x64.dll
extension=php_sqlsrv_72_ts_x64.dll
extension=php_pdo_sqlsrv_72_ts_x64.dll
【问题讨论】:
-
您不应该使用
ts(线程安全)和nts(非线程安全)版本的sqlsrv扩展同时。另外,您是否确保在 CLI 的 php.ini 以及网络服务器(php-fpm 或其他)中都启用了扩展? -
感谢您的评论,现在它正在工作。我需要添加到 php 文件夹中的 php.ini 和 apache 文件夹中的 php.ini 。谢谢。
标签: php sql-server database laravel