php远程连接orcale 12c数据库,php连接oracle数据库 亲测远程PHP接oracle数据库

本文档详细介绍了如何在Windows环境下配置Oracle客户端,并通过PHP进行数据库连接测试。包括安装不同位数的客户端,开启PHP相关扩展,配置环境变量,以及处理oci_connect错误的方法。同时提供了PHP测试代码示例,演示了如何建立连接并执行SQL查询。
摘要由CSDN通过智能技术生成

1.安装oracle客户端,不管是32位还是64位;当系统是32位的时候,要装32位的客户端,PL/SQL才能给连上数据库

2.php.ini中对应的oracle相关扩展打开。php_openssl.dll,php_oci8.dll,如果装的是11g的话,不打开php_oci8.dll,而是php_oci8_11g.dll。如果有php_oracle.dll的话,就打开。

3.写个测试代码进行连接测试,如下:

$dbconn = oci_connect('test','test',"(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=172.21.1.11)(PORT=1521))(CONNECT_DATA=(SID=orcl)))");

if ($dbconn) {

echo '连接成功';

}else {

echo '连接失败';

}

注意:每次修改都重启哈apache服务。

如果报错,找不到oci_connect方法,则说明phpinfo中没有找到oci8扩展信息,则需要将oracle客户端下的响应的dll拷贝到apache的bin目录下。例如,我装的是oracle 11g的,那么拷贝的dll文件是instantclient_11_2目录下的oci.dll,orannzsbb11.dll,oraociei11.dll;

如果继续报错Warning: oci_connect(): OCIEnvNlsCreate() failed. There is something wrong with ......library,则说明需要为oracle客户端配置响应的环境变量

Path(在变量中加入)                                 D:\oracle instantclient

LD_LIBRARY_PATH                                      D:\oracle instantclient

NLS_LANG                                   SIMPLIFIED CHINESE_CHINA.ZHS16GBK

ORACLE_HOME                                          D:\oracle instantclient

SQL_PATH                                             D:\oracle instantclient

TNS_ADMIN                                            D:\oracle instantclient

如果安装了oarcle服务端,则将tnsnames.ora文件拷贝到instantclient目录下,没有的话,就想办法让instantclient目录下有tnsnames.ora文件。

可使用直接源代码之,,,

$dbstr ="(DESCRIPTION =(ADDRESS = (PROTOCOL = TCP)(HOST =192.168.0.8)(PORT = 1521))

(CONNECT_DATA =

(SERVER = DEDICATED)

(SERVICE_NAME = orcl)

(INSTANCE_NAME = orcl)))";

//phpinfo();

$conn = oci_connect('yx','123',$dbstr);//如果去掉最后一个参数或者为“ ”,默认连接本机

//$conn = oci_connect('username','password','192.168.0.8/yx');

if (!$conn)

{

$Error = oci_error();

print htmlentities($Error['message']);

exit;

}

else

{

echo "Connected Oracle Successd~连接成功~"."
";

//ocilogoff($conn);

}

$stmt = oci_parse($conn, "select * from bshrp.zy_brry");

oci_execute($stmt);

$nrows = oci_fetch_all($stmt, $results);

if ($nrows > 0) {

echo "

echo "

\n";

foreach ($results as $key => $val) {

echo "

$key\n";

}

echo "

\n";

for ($i = 0; $i < $nrows; $i++) {

echo "

\n";

foreach ($results as $data) {

echo "

$data[$i]\n";

}

echo "

\n";

}

echo "

\n";

} else {

echo "No data found
\n";

}

echo " $nrows  Records Selected
\n";

oci_free_statement($stmt);

oci_close($conn);/**/

?>

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值