我有一个简单的脚本,可以在PHP 5.6中运行,但在PHP 7.0中不起作用:
$conn = new PDO("sqlsrv:Server=10.6.2.105;Database=mydb", "myuname", "mypwd");
$sql = "SELECT TOP 3 txt FROM mytab";
foreach ($conn->query($sql) as $row)
print $row["txt"] . "\r\n";
当我在PHP 7.0中运行它时,我收到以下错误:
Uncaught PDOException: could not find driver
根据http://php.net/manual/en/pdo.installation.php我的php.ini文件中不需要extension = php_pdo.dll,版本高于5.3 for windows installs。
我确实有以下内容:
extension=php_pdo_mysql.dll
extension=php_pdo_oci.dll
extension=php_pdo_sqlite.dll
另外,我可以直接使用sql server,而不是使用PDO。
我需要什么才能让这个工作?我在哪里找到驱动程序?
详细说明:
PHP 7.0.5
Windows 8.1
NTS x86
答案 0 :(得分:2)
已经下载了驱动程序但它没有工作。找到一个新的驱动程序站点,这个工作。
https://github.com/Microsoft/msphpsql/releases
添加了php.ini一行:
extension=php_pdo_sqlsrv_7_nts.dll
答案 1 :(得分:0)
您说得对,不再需要明确启用PDO扩展,这是正确的。
然而,似乎你的php.ini文件中没有启用MSSQL驱动程序本身,因为你只列出了MySQL,OCI和SQLite。因此,添加此行以启用扩展名:
extension=php_pdo_mssql.dll