ホームページ >バックエンド開発 >PHPチュートリアル >windwos下使用php连接oracle数据库的过程分享_php实例
要使用php连接oracle,基本条件是
1.需要你安装了php、
2.安装了oracle、
3.配置了tnsname.ora。
本地命令行使用sqlplus能够连接到oracle。
根据你机器的版本选对64bit或者32bit的php程序,我们使用php的oci8扩展连接oracle
安装好php后,打开oci8扩展,
写一段连接oracle的ora.php代码
$conn = oci_connect('hr', 'welcome', 'MYDB');
if (!$conn) {
$e = oci_error();
trigger_error(htmlentities($e['message'], ENT_QUOTES), E_USER_ERROR);
}
// Prepare the statement
$stid = oci_parse($conn, 'SELECT * FROM departments');
if (!$stid) {
$e = oci_error($conn);
trigger_error(htmlentities($e['message'], ENT_QUOTES), E_USER_ERROR);
}
// Perform the logic of the query
$r = oci_execute($stid);
if (!$r) {
$e = oci_error($stid);
trigger_error(htmlentities($e['message'], ENT_QUOTES), E_USER_ERROR);
}
// Fetch the results of the query
print "
" . ($item !== null ? htmlentities($item, ENT_QUOTES) : " ") . " | \n";
oci_free_statement($stid);
oci_close($conn);
?>
说明:
oci_connect('hr', 'welcome', 'MYDB')
第一个参数是oracle的用户名,
第二个参数是oracle的密码
第三个参数是tnsnames.ora里的连接串名
命令行下执行
提示如下错误
开始以为是没有选对版本,我是64位的机器,结果说是win32的程序,一看字面提示,我就重新安装了新的32bit程序还是报错。
仔细查了查发现在32位像64位迁移的问题,出现如下问题时,我们需要安装Oracle Instant Client。
http://www.oracle.com/technetwork/database/features/instant-client/index-097480.html
嫌麻烦的同学使用这个地址下载
http://eduunix.ccut.edu.cn/index2/database/Oracle%20Instant%20Client/
下载后把压缩包解压到c:\oracleinstantclient,并添加路径到环境变量PATH
重新执行php ora.php,“%1 不是有效的 Win32 应用程序”的错误没有了,但是会提示
继续执行,这次提示,
配好上述信息后,终于能出结果了,但是发现查出来的结果中问乱码,这种问题基本都是编码不匹配。
php oci8中文乱码解决办法,先查询你的oracle的数据库编码使用,
终于php能够正确连接到oracle啦。