凡是连接数据库,必须安装客户端,我一般写博客都不写原理,但是后来发现回头看自己写的自己都看不懂,所以这章博客会多一点原理性的东西。
数据库的连接一般都是在客户端上完成的,MySQL也不例外,安装mysql时一般都会这么安装:
#yum install mysql mysql-server
上面的mysql就是安装的客户端,mysql-server就是服务端,不安装客户端(mysql)就没办法执行mysql连接命令:mysql -u user -p pass -h -P port
而sqlserver同样需要客户端,下面讲的就是在linux下安装sqlserver 2008的客户端freetds
安装环境:
#centos6.8 #php5.6 #sqlserver2008
- 下载freetds,一般都会在官网下载,这个开源的想必没人会用盗版。
wget ftp://ftp.freetds.org/pub/freetds/stable/freetds-patched.tar.gz #linux下载有点慢,可以在windows上下载,然后再上传至linux上。 tar zxf freetds-patched.tar.gz cd freetds-1.00.27 ./configure --prefix=/usr/local/freetds --with-tdsver=7.3 --enable-msdblib make && make install
2.导入ldconfig
echo "/usr/local/freetds/lib/" > /etc/ld.so.conf.d/freetds.conf ldconfig
3.查看安装的版本:
/usr/local/freetds/bin/tsql -C
4.测试能否连接sqlserver:
/usr/local/freetds/bin/tsql -H 10.10.10.10 -p 1433 -U sa -P password
5.添加PHP扩展mssql和pdo_dblib,这是php两种连接mssql的方式,只安装mssql也可以。
注意:一般安装php会选择两种方式,一种是编译安装,一种是yum安装。下面分别来讲解两种方式的安装方式:
1)yum安装的php
#很简单,直接yun安装mssql插件即可:
yum install php-pdo -y yum install php-mssql -y
2)编译安装的php
#进入到php的安装包中,安装mssql插件
cd /home/tools/php-5.6.20/ext/mssql/ /usr/local/php/bin/phpize ./configure --with-php-config=/usr/local/php/bin/php-config --with-mssql=/usr/local/freetds/ make && make install
#安装pdo_dblib cd /home/tools/php-5.6.20/ext/pdo_dblib/ /usr/local/php/bin/phpize ./configure --with-php-config=/usr/local/php/bin/php-config --with-pdo-dblib=/usr/local/freetds/ make && make install
在php.ini中添加mssql和pdo_dblib:
mv /usr/local/php/lib/php/extensions/no*/mssql /usr/local/php/lib/php/extensions/ mv /usr/local/php/lib/php/extensions/no*/pdo_dblib /usr/local/php/lib/php/extensions/ #把前面安装的扩展插件生成的文件移动到extension目录下 vi /usr/local/php/lib/php.ini extension_dir = "/usr/local/php/lib/php/extensions" extension = "mssql.so" extension = "pdo_dblib.so"
3)重启php,看扩展插件有没有生效:
#编译一个php测试文件:
vi /www/html/test.php <?php phpinfo(); ?>
用浏览器打开上面的测试文件,会看到如下信息,代表成功安装:
6.测试mssql连接sqlserver2008:
#编辑一个测试文件:
vi /www/html/connect_sql.php <?php header("Content-type: text/html; charset=utf-8"); $msdb=mssql_connect("10.10.10.10:1433","sa","password"); if (!$msdb) { echo "connect sqlserver error"; exit; } mssql_select_db("test",$msdb); $result = mssql_query("SELECT top 5 * FROM student", $msdb); while($row = mssql_fetch_array($result)) { print_r($row); } mssql_free_result($result); ?>
#如果内容是sqlserver test数据库,student表内的内容代表php成功连接到数据库。
7.测试pdo_dblib连接sqlserver2008:
#创建一个测试文件 vi /www/html/connect_db.php <?php header("Content-type: text/html; charset=utf-8"); try { $hostname = "10.10.10.10"; $port = 1433; $dbname = "test"; $username = "sa"; $pw = "password"; $dbh = new PDO ("dblib:host=$hostname:$port;dbname=$dbname","$username","$pw"); } catch (PDOException $e) { echo "Failed to get DB handle: " . $e->getMessage() . "\n"; exit; } $stmt = $dbh->prepare("SELECT top 5 * FROM student"); $stmt->execute(); while ($row = $stmt->fetch()) { print_r($row); } unset($dbh); unset($stmt); ?>
#如果内容是sqlserver test数据库,student表内的内容代表php成功连接到数据库。
时间: 2024-12-14 18:49:21