Eri*_*ard 29 php sql-server pdo
如果您在Google上搜索此问题,您会发现很多不正确,误导性和过时的信息.令人惊讶的是,Stack Overflow上没有一个可靠的答案,所以我们应该改变它.
我正在使用Apache和PHP的Mac端口安装.我已经安装了php5-mssql,我可以在我的phpinfo()页面上看到mssql.
但我不认为它在PDO下列出.
PDO support enabled
PDO drivers dblib, mysql, odbc, pgsql
Run Code Online (Sandbox Code Playgroud)
mssql是否与PDO无关?是否有其他驱动程序可以在Mac上使用PDO连接到SqlServer数据库?似乎这是应该可能的事情.
Ben*_*ill 16
这对你有帮助吗?
http://blog.nguyenvq.com/2010/05/16/freetds-unixodbc-rodbc-r/
我使用FreeTDS从Linux服务器连接到Microsoft SQL服务器,看起来上面链接中的人使用FreeTDS从Mac连接.
这是我的/etc/freetds/freetds.conf文件(我添加的唯一部分是XYZ服务器的最后一部分):
[global]
# TDS protocol version
; tds version = 4.2
# Whether to write a TDSDUMP file for diagnostic purposes
# (setting this to /tmp is insecure on a multi-user system)
; dump file = /tmp/freetds.log
; debug flags = 0xffff
# Command and connection timeouts
; timeout = 10
; connect timeout = 10
# If you get out-of-memory errors, it may mean that your client
# is trying to allocate a huge buffer for a TEXT field.
# Try setting 'text size' to a more reasonable limit
text size = 64512
# Define a connection to the MSSQL server.
[xyz]
host = xyz
port = 1433
tds version = 8.0
Run Code Online (Sandbox Code Playgroud)
[由提问者编辑]
FreeTDS配置是答案的前半部分.一旦配置完毕,您应该能够从命令行运行这样的东西并连接:
tsql -S xyz -U username -P password
Run Code Online (Sandbox Code Playgroud)
然后你需要使用dblib而不是mssql作为PDO驱动程序:
$pdo = new PDO("dblib:host=$dbhost;dbname=$dbname",
"$dbuser","$dbpwd");
Run Code Online (Sandbox Code Playgroud)
其中$ dbhost是freetds.conf文件中的名称
dblib是需要在unix系统上与mssql一起使用的驱动程序
你无需安装任何其他东西,
<?php
$dsn = 'dblib:dbname=testdb;host=127.0.0.1';
$user = 'dbuser';
$password = 'dbpass';
$dbh = new PDO($dsn, $user, $password);
Run Code Online (Sandbox Code Playgroud)
在查看了很多线程后,我发现使用PHP 7或更早版本从Mac OS X连接到MSSQL的最佳方法是使用dblib.(只需下载正确的php版本)
您可以按照这些说明(忽略mssql.so扩展名)轻松连接:
https://github.com/BellevueCollege/public-docs/blob/master/PHP/configure-mssql-pdodblib-mac.md
它与OS X El Capitan,Bitnami和PHP 7完美配合.
步骤1.-安装XCode
$ xcode-select ---install
Run Code Online (Sandbox Code Playgroud)
2.-安装Homebrew
3.-使用Homebrew安装autoconf.
$ brew install autoconf
Run Code Online (Sandbox Code Playgroud)
4.-安装FreeTDS
$ brew install freetds
Run Code Online (Sandbox Code Playgroud)
5.-下载您的PHP源版本并解压缩.
6.-构建PDO DBLIB扩展(PHP 5.5.14的示例)
$ cd php-5.5.14/ext/pdo_dblib
$ phpize
$ ./configure --with-php-config=/usr/bin/php-config --with-pdo-dblib=/usr/local/
$ make
$ sudo cp modules/pdo_dblib.so /usr/lib/php/extensions/no-debug-non-zts-20121212
Run Code Online (Sandbox Code Playgroud)
7.-将.so extensio添加到php.ini extension = pdo_dblib.so
8.-重启Apache
9.-使用dblib dsn连接:
$pdo = new PDO("dblib:host=$dbhost;dbname=$dbname","$dbuser","$dbpwd");
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
21773 次 |
| 最近记录: |