reasonableframework/helper/oracle.php

108 lines
2.5 KiB
PHP
Raw Normal View History

2018-03-27 02:02:20 +00:00
<?php
/**
* @file oracle.php
* @date 2018-03-27
* @author Go Namhyeon <gnh1201@gmail.com>
* @brief Oracle database helper for ReasonableFramework
*/
2018-03-27 02:08:30 +00:00
function get_db_orable_binded_sql($sql, $bind) {
2018-03-27 02:02:20 +00:00
return get_db_binded_sql($sql, $bind);
}
2018-03-27 02:15:28 +00:00
function get_db_oracle_stmt($sql, $bind) {
$stmt = NULL;
$sql = get_db_orable_binded_sql($sql, $bind);
$stmt = oci_parse($conn, $sql);
return $stmt;
}
2018-03-27 02:02:20 +00:00
function exec_db_oracle_connect($host, $port, $user, $password, $options=array()) {
$conn = NULL;
$envs = array();
if(!function_exists("oci_connect") {
exit("OCI (Oracle Extension for PHP) not installed!");
}
if(count($options) == 0) {
$options["ENV.NLS_LANG"] = "KOREAN_KOREA.AL32UTF8";
$options["DESCRIPTION.ADDRESS_LIST.ADDRESS.PROTOCOL"] = "TCP";
$options["DESCRIPTION.CONNECT_DATA.SERVER"] = "DEDICATED";
$options["DESCRIPTION.CONNECT_DATA.SERVICE_NAME"] = "ORCL";
}
// set envs
foreach($options as $k=>$v) {
$k_terms = explode(".", $k);
2018-03-27 02:10:29 +00:00
if(count($k_terms) > 1) {
if($k_terms[0] == "ENV") {
$envs[] = $k_terms[1] . "=" . $options[$k];
}
2018-03-27 02:02:20 +00:00
}
}
foreach($envs as $env) {
putenv($env);
}
// set host, port
$options["DESCRIPTION.ADDRESS_LIST.ADDRESS.HOST"] = $host;
$options["DESCRIPTION.ADDRESS_LIST.ADDRESS.PORT"] = $port;
$dbsid = "(
DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS =
(PROTOCOL = " . $options["DESCRIPTION.ADDRESS_LIST.ADDRESS.PROTOCOL"] . ")
(HOST = " . $options["DESCRIPTION.ADDRESS_LIST.ADDRESS.HOST"] . ")
(PORT = " . $options["DESCRIPTION.ADDRESS_LIST.ADDRESS.PORT"] . ")
)
)
(CONNECT_DATA =
(SERVER = " . $options["DESCRIPTION.CONNECT_DATA.SERVER"] . ")
(SERVICE_NAME = " . $options["DESCRIPTION.CONNECT_DATA.SERVICE_NAME"] . ")
)
) ";
$conn = @oci_connect($user, $password, $dbsid);
return $conn;
}
function exec_db_oracle_fetch_all($sql, $bind, $conn) {
$rows = array();
$required_functions = array("oci_parse", "oci_execute", "oci_fetch_assoc", "oci_free_statement");
foreach($required_functions as $func_name) {
if(!function_exists($func_name)) {
exit("OCI (Oracle Extension for PHP) not installed!");
}
}
2018-03-27 02:15:28 +00:00
$stmt = get_db_oracle_stmt($sql, $bind);
2018-03-27 02:02:20 +00:00
oci_execute($stmt);
while($row = oci_fetch_assoc($stmt)) {
$rows[] = $row;
}
oci_free_statement($stmt);
return $rows;
}
2018-03-27 02:15:28 +00:00
function exec_db_oracle_query($sql, $bind, $conn) {
$flag = false;
$stmt = get_db_oracle_stmt($sql, $bind);
$flag = oci_execute($stmt);
oci_free_statement($stmt);
return $flag;
}