CentOS下PHP连接Sybase的方法

分类:PHP |

第一步:先安装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);