linux php5.5 连接oracle

1.下载下面几个包,然后rpm命令安装

  • oracle-instantclient12.1-basic-12.1.0.2.0-1.x86_64.rpm
  • oracle-instantclient12.1-devel-12.1.0.2.0-1.x86_64.rpm
  • oracle-instantclient12.1-sqlplus-12.1.0.2.0-1.x86_64.rpm

2. echo "/usr/lib/oracle/12.1/client64/lib" > /etc/ld.so.conf.d/oracle_client.conf

3. /sbin/ldconfig 

4.wget http://pecl.php.net/get/oci8-2.0.10.tgz

5.tar -xf oci8-2.0.10.tgz

6.cd oci8-2.0.10

7.phpize

8../configure --with-oci8=shared,instantclient,/usr/lib/oracle/12.1/client64/lib --with-php-config=(自己的php-config目录#不知道就find  / -name 'php-config' 检索一下)

9.make & make install 此时看好最后提示的路径,类似这种/usr/local/php/lib/php/extensions/no-debug-non-zts-20121212,

10.将进入上面这个目录,查看oci8.so生成,生成了就进入php.ini  加上extension=oci8.so

11.php -m 看下有没有添加成功

12.service nginx restart
service php-fpm restart  //必须执行,不然连不上

13.

$conn = oci_connect('apple','abc123','localhost/orcl');


if($conn!=false)
{
    echo "连接成功".'<br/>';
    if(OCILogOff($dbconn)==true)
    {
        echo "关闭连接成功!".'<br/>';//
    }
}
else
{
    echo "连接失败".'<br/>';
}

附上 通用查询代码示例:

function do_query($query,$binds="",$delay=0) {
    global $conn;
    $parse=@ociparse($conn,$query);
    if(!$parse)    {
        $err=ocierror($conn);
        $errmsg=explode(":",$err[message]);
        error(addslashes($errmsg[1]));
    }
    if($binds!="" && is_array($binds)) {
        //while(list($key,$val)=each($binds))  {
        foreach($binds as $key=>$val){
            if(is_numeric($key))   {
                $key=$val;
                $val=substr($val,1);
            }
            if(ereg("^(.*)=>(.*)$",$val,$newval))  {
                $bl=$newval[1];$tmp_lx=$newval[2];
                global $$bl;
                if($tmp_lx=="OCI_B_CLOB")  {
                    $$bl=OCINewDescriptor($conn,OCI_D_LOB);
                    ocibindbyname($parse,$key,$$bl,-1,OCI_B_CLOB);
                }
            }
            else   {
                global $$val;
                if($$val=="")  { $length=32;} else { $length=-1; }
                ocibindbyname($parse,$key,$$val,$length);
                $outval.="{$key}:".$$val.";";
            }
        }
    }
    if($delay) {
        $exe=ociexecute($parse,OCI_DEFAULT);
    }
    else   {
        $exe=ociexecute($parse);
    }
    if(!$exe)  {
        $err=ocierror($parse);
        $errmsg=explode(":",$err[message]);
        echo $outval;
        //error(addslashes($errmsg[1]));
        echo $errmsg[1]."<br>".$query;exit;
        //error(addslashes($err[message]));
    }
    return $parse;
}
$query="select * from VIEW_TEST";
$binds=array();
$selcet=do_query($query,$binds,1);
ocifetchinto($selcet,$row,OCI_ASSOC);
print_r($row);
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值