连接到 sqlsrv
字符串无法工作。
$login = new PDO("sqlsrv:server=MYSQLSERVER\SQLEXPRESS;Database=db_name", "user", "passw");
我遇到了错误信息:
Fatal error: Invalid handle returned
。
我非常确定登录详情是正确的,因为在其他项目中它可以工作。这可能是因为PHP 7
的问题吗?
连接到 sqlsrv
字符串无法工作。
$login = new PDO("sqlsrv:server=MYSQLSERVER\SQLEXPRESS;Database=db_name", "user", "passw");
我遇到了错误信息:
Fatal error: Invalid handle returned
。
我非常确定登录详情是正确的,因为在其他项目中它可以工作。这可能是因为PHP 7
的问题吗?
尝试在DSN中使用“ConnectionPooling = 0”。
有时工作,有时返回错误
这可能是重复使用连接的问题。
DSN参考: https://msdn.microsoft.com/en-us/library/ff628167(v=sql.105).aspx
PHP Sql Server的驱动程序存在问题。
您应该将其更新到新版本。
如您所述,您正在使用Windows系统,这个版本完全适用于Windows。
https://github.com/Microsoft/msphpsql/releases/tag/v4.1.1-Windows
看起来要连接到MS-SQL,您需要使用ODBC。
参考:http://php.net/manual/en/pdo.construct.php#120705
$odbc="odbc:Driver={SQL Server};Server=$server;Database=$database;";
$cnx = new PDO( $odbc , $user, $password);
mssql
和sqlsrv
前缀与odbc
混淆了。我发现有时最好将其简化为已确认的设计,如果这样可以工作,则添加更多复杂性以找到“why”。本质上,清除最小执行模式以进行验证。 - GoldBishop