gpt4 book ai didi

php - 无法使用 PDO : unixODBC 连接到 MSSQL PHP7

转载 作者:行者123 更新时间:2023-12-04 19:30:44 25 4
gpt4 key购买 nike

首先,我很抱歉,因为我对 Linux 的经验很少,所以我可能只是不理解一些明显的东西。最终,我试图通过 PHP 查询 MSSQL 数据库。

我已经安装了 freetds 和 unixODBC。我用 tsql (freetds) 和 isql (unixODBC) 确认了设置,一切正常。问题是当我尝试使用 pdo 从 PHP 连接时,使用以下命令:
$db = new PDO('odbc:mssql', '$username','$password');

我收到一个致命的 PHP 错误:未捕获的 PDOException:找不到驱动程序...

经过进一步检查,我查看了我的 PHP 信息文件,可用的 PDO 驱动程序是:mysql 和 sqlite。如何/在哪里获得 PHP7 的 pdo odbc 驱动程序?在 PHP 文档中,驱动程序似乎包含在 PHP 源代码中,但我看到的唯一选择是使用 ./configure ,据我了解,这只是从源代码编译。

有没有办法将驱动程序添加到已经编译的 PHP7 版本中?我觉得我错过了一些愚蠢的东西。任何帮助将不胜感激!

最佳答案

如果你的操作系统是 UBUNTU

安装适用于 Linux 的 unixODBC 驱动程序管理器和 Microsoft ODBC 驱动程序

wget https://raw.githubusercontent.com/Microsoft/msphpsql/PHP-7.0-Linux/ODBC%20install%20scripts/installodbc_ubuntu.sh

运行安装程序
sh installodbc_ubuntu.sh

安装PHP依赖is
apt-get install php-pear php-dev

安装 sqlsrv(使用 pecl search sqlsrv 检查最新版本)
pecl install sqlsrv-4.0.5

安装 pdo_sqlsrv(使用 pecl search sqlsrv 检查最新版本)
pecl install pdo_sqlsrv-4.0.5

加载扩展
echo "extension=sqlsrv.so" | sudo tee --append /etc/php/7.0/fpm/php.ini
echo "extension=pdo_sqlsrv.so" | sudo tee --append /etc/php/7.0/fpm/php.ini

重启 PHP-FPM
service php7.0-fpm restart

对于 window
https://docs.microsoft.com/en-us/sql/connect/php/loading-the-php-sql-driver?view=sql-server-2017

CentOS 7
sudo su
curl https://packages.microsoft.com/config/rhel/7/prod.repo > /etc/yum.repos.d/mssql-release.repo
exit
sudo yum update
sudo ACCEPT_EULA=Y yum install -y msodbcsql mssql-tools unixODBC-devel
sudo yum groupinstall "Development Tools"
sudo pecl install sqlsrv
sudo pecl install pdo_sqlsrv
echo "extension=sqlsrv" >> `php --ini | grep "Loaded Configuration" | sed -e "s|.*:\s*||"`
echo "extension=pdo_sqlsrv" >> `php --ini | grep "Loaded Configuration" | sed -e "s|.*:\s*||"`

或通过百胜看; https://webtatic.com/packages/php70/

关于php - 无法使用 PDO : unixODBC 连接到 MSSQL PHP7,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50840984/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com