-
安装PHP
-
下载php安装包:在php官网下载最新PHP版本的zip包(https://windows.php.net/download/);
- 解压到C:盘根目录下,将文件夹“php-xxxxx”重命名为“php”;
-
配置PHP:将C:\php\php.ini-development重命名为C:\php\php.ini,并使用任何文本编辑器(如记事本++)编辑文件,调用Oracle支持的PDO驱动程序,在extension处将oci8和pdo_oci取消注释,然后保存并关闭编辑器。
-
安装Oracle数据库
-
下载Oracle安装程序:在Oracle官网下载Oracle 11g Express实例(https://www.oracle.com/database/technologies/xe-prior-releases.html);
- 使用管理员权限启动安装程序;
-
安装过程中,选择默认值,包括端口号和DB名称,并设置system密码。
-
配置Oracle连接
-
在windows搜索栏输入“ODBC”,点击“ODBC数据源(64位)”打开窗口;
- 点击“系统DNS”选项卡,然后单击下面的“添加”按钮;
-
在“驱动程序”中选择“Oracle in XE”(或Oracle的其他版本),然后输入以下信息:
- 数据源名称(任意);
- TNS服务名称“xe”;
- 用户名“system”;
- 密码“你在第二步中设置的密码”;
- 然后点击测试按钮,并且确保测试连接成功。
-
使用PHP连接Oracle
-
在PHP脚本中连接Oracle:
<?php
$conn = oci_connect('system', 'password', 'xe');
if (!$conn) {
$m = oci_error();
echo $m['message'], "\n";
exit;
}
echo '连接成功!';
?>
-
代码细节:
- oci_connect()函数使用用户名“system”和密码连接到每个Oracle实例“xe”;
- 若未能连接成功,则输出错误信息。
-
示例一:查询Oracle数据库中所有员工信息的代码实现
<?php
$conn = oci_connect('system', 'password', 'xe');
if (!$conn) {
$m = oci_error();
echo $m['message'], "\n";
exit;
}
$query = 'SELECT * FROM EMPLOYEES';
$stid = oci_parse($conn, $query);
if (!$stid) {
$e = oci_error($conn);
trigger_error(htmlentities($e['message'], ENT_QUOTES), E_USER_ERROR);
}
$r = oci_execute($stid);
if (!$r) {
$e = oci_error($stid);
trigger_error(htmlentities($e['message'], ENT_QUOTES), E_USER_ERROR);
}
echo "<table>\n";
while ($row = oci_fetch_array($stid, OCI_ASSOC+OCI_RETURN_NULLS)) {
echo "<tr>\n";
foreach ($row as $item) {
echo " <td>" . ($item !== null ? htmlentities($item, ENT_QUOTES) : " ") . "</td>\n";
}
echo "</tr>\n";
}
echo "</table>\n";
?>
- 代码细节:
- 使用oci_parse函数解析查询语句;
- 使用oci_execute函数执行语句,若查询失败,则返回错误信息;
-
使用oci_fetch_array函数遍历结果集,并将结果集输出到表格中。
-
示例二:将员工信息插入到Oracle数据库中
<?php
$conn = oci_connect('system', 'password', 'xe');
if (!$conn) {
$m = oci_error();
echo $m['message'], "\n";
exit;
}
$name = 'Tom';
$age = 24;
$sex = '男';
$sql = "INSERT INTO EMPLOYEES(id, name, age, sex) VALUES (employees_seq.nextval, :name, :age, :sex )";
$stid = oci_parse($conn, $sql);
oci_bind_by_name($stid, ':name', $name, 256);
oci_bind_by_name($stid, ':age', $age, 256);
oci_bind_by_name($stid, ':sex', $sex, 256);
$r = oci_execute($stid);
if (!$r) {
$e = oci_error($conn);
trigger_error(htmlentities($e['message'], ENT_QUOTES), E_USER_ERROR);
}
echo " $name 的资料已更新成功!";
?>
- 代码细节:
- 使用oci_bind_by_name绑定变量,使用oci_parse解析SQL语句,并使用oci_execute执行SQL语句,若插入数据失败,则返回错误信息;
- SQL语句中使用SEQUENCE记录ID, ":"为占位符。在使用oci_bind_by_name函数修改变量时,注意 ':' 不需要写在变量名前。
至此,本地开发环境搭建方法已经详细讲解完毕,示例演示了如何连接Oracle,使用PHP查询和插入数据。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:PHP+Oracle本地开发环境搭建方法详解 - Python技术站