CentOS下PHP连接Sybase的方法
第一步:先安装freetds及相关库
yum install freetds freetds-devel
第二步:下载php源码及编译sybase扩展
wget http://cn.php.net/get/php-5.3.6.tar.bz2/from/this/mirror
tar jxvf php-5.3.6.tar.bz2
cd php-5.3.6/ext/sybase_ct/
phpize
./configure --with-sybase-ct=/usr
make
make install
第三步:载入PHP的sybase扩展
cd /etc/php.d
vim sybase_ct.ini
extension=sybase_ct.so
第四步:重新启动Apache完成
service httpd restart
——————————————————————————
利用freetds,官网地址:http://www.freetds.org/
下载地址: http://ibiblio.org/pub/Linux/ALP ... freetds-current.tgz
下载之后,解压进行安装
# ./configure --prefix=/usr/local/freetds --with-tdsver=7.1 --enable-msdblib
# make
# make install
安装后执行/usr/local/freetds/bin/tsql -C 会显示安装成功的信息
然后在编译安装php时,把目录指定在freetds的安装目录就行了
--with-sybase-ct=/usr/local/freetds
----------------------------------------------------------
以下测试php连接sybase数据库,并输出数据库内表的记录数的例子, 仅供参考
<?php
//phpinfo();
$link = @sybase_connect('test', 'sa', '')
or die("Could not connect !"); //连接数据库,第一空必须写服务名称,不能是ip;
echo "Connected successfully<br>";
$db = @sybase_select_db("andkylee",$link) //连接数据库
or die("数据库没有选择");
echo "数据库选择成功<br>";
$sql= "select user_name(uid) as owner,* from dbo.sysobjects where type='U' order by id";
$rs = sybase_query($sql,$link); //查询表
if (!$rs)
{
echo "SQL:".$sql."执行失败!";
exit;
}
//$sybase = sybase_fetch_array($rs);
//print_r($sybase);//结束
echo '<table border="1"><tr><td>ID</td><td>NAME</td><td>COUNT(*)</td>';
while ($row = sybase_fetch_array($rs)) {
$id = $row["id"];
$name = $row["name"];
$owner = $row["owner"];
$sql_tablecount = "select count(*) as cnt from ".$owner.".".$name;
$rs_tablecount = sybase_query($sql_tablecount,$link);
$row_tablecount = sybase_fetch_array($rs_tablecount);
$cnt = $row_tablecount["cnt"];
echo '<tr><td>'.$id.'</td><td>'.$name.'</td><td>'.$cnt.'</td></tr>';
}
echo '</table>';
sybase_free_result($rs);
sybase_close($link);