Update database.alt.php

This commit is contained in:
Namhyeon Go 2019-05-11 15:20:46 +09:00 committed by GitHub
parent 65cc6952a5
commit c2c421c14e
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -7,9 +7,9 @@
*/ */
if(!check_function_exists("exec_db_alt_callback")) { if(!check_function_exists("exec_db_alt_callback")) {
function exec_db_alt_callback($rules, $params=array()) { function exec_db_alt_callback($rules, $params=array(), $driver="") {
$result = false; $result = false;
$db_driver = get_db_driver(); $db_driver = empty($driver) ? get_db_driver() : $driver;
foreach($rules as $rule) { foreach($rules as $rule) {
if($rule['driver'] == $db_driver) { if($rule['driver'] == $db_driver) {
@ -44,19 +44,28 @@ if(!check_function_exists("get_db_alt_connect")) {
array("driver" => "mysql.old", "callback" => "get_db_mysql_old_connect"), array("driver" => "mysql.old", "callback" => "get_db_mysql_old_connect"),
array("driver" => "mysql.cmd", "callback" => "get_db_mysql_cmd_connect"), array("driver" => "mysql.cmd", "callback" => "get_db_mysql_cmd_connect"),
array("driver" => "oracle", "callback" => "get_db_oracle_connect"), array("driver" => "oracle", "callback" => "get_db_oracle_connect"),
//array("driver" => "pgsql", "callback" => "get_db_pgsql_connect"), array("driver" => "pgsql", "callback" => "get_db_pgsql_connect"),
array("driver" => "mssql.pdo", "callback" => "get_db_mssql_pdo_connect"); array("driver" => "mssql.pdo", "callback" => "get_db_mssql_pdo_connect"),
); );
$conn = exec_db_alt_callback($rules); $conn = exec_db_alt_callback($rules, array(), $driver);
return $conn; return $conn;
} }
} }
if(!check_function_exists("exec_db_alt_query")) { if(!check_function_exists("exec_db_alt_query")) {
function exec_db_alt_query($sql, $bind=array(), $driver="") { function exec_db_alt_query($sql, $bind=array(), $options=array()) {
$result = false; $result = false;
// allow custom db connection object
if(array_key_empty("dbc", $options)) {
if(!array_key_empty("driver", $options)) {
$options['dbc'] = get_db_alt_connect($options['driver']);
} else {
$options['dbc'] = get_dbc_object();
}
}
$rules = array( $rules = array(
array("driver" => "mysql.pdo", "callback" => "exec_db_mysql_pdo_query"), array("driver" => "mysql.pdo", "callback" => "exec_db_mysql_pdo_query"),
@ -64,31 +73,32 @@ if(!check_function_exists("exec_db_alt_query")) {
array("driver" => "mysql.old", "callback" => "exec_db_mysql_old_query"), array("driver" => "mysql.old", "callback" => "exec_db_mysql_old_query"),
array("driver" => "mysql.cmd", "callback" => "exec_db_mysql_cmd_query"), array("driver" => "mysql.cmd", "callback" => "exec_db_mysql_cmd_query"),
array("driver" => "oracle", "callback" => "exec_db_oracle_query"), array("driver" => "oracle", "callback" => "exec_db_oracle_query"),
//array("driver" => "pgsql", "callback" => "exec_db_pgsql_query"), array("driver" => "pgsql", "callback" => "exec_db_pgsql_query"),
array("driver" => "mssql.pdo", "callback" => "exec_db_mssql_pdo_query"), array("driver" => "mssql.pdo", "callback" => "exec_db_mssql_pdo_query"),
); );
$result = exec_db_alt_callback($rules, array($sql, $bind)); $result = exec_db_alt_callback($rules, array($sql, $bind, $options), $driver);
return $result; return $result;
} }
} }
if(!check_function_exists("exec_db_alt_fetch_all")) { if(!check_function_exists("exec_db_alt_fetch_all")) {
function exec_db_alt_fetch_all($sql, $bind=array()) { function exec_db_alt_fetch_all($sql, $bind=array(), $options=array()) {
$rows = array(); $rows = array();
$driver = get_value_in_array("driver", $options, "");
$rules = array( $rules = array(
array("driver" => "mysql.pdo", "callback" => "exec_db_mysql_pdo_fetch_all"), array("driver" => "mysql.pdo", "callback" => "exec_db_mysql_pdo_fetch_all"),
array("driver" => "mysql.imp", "callback" => "exec_db_mysql_imp_fetch_all"), array("driver" => "mysql.imp", "callback" => "exec_db_mysql_imp_fetch_all"),
array("driver" => "mysql.old", "callback" => "exec_db_mysql_old_fetch_all"), array("driver" => "mysql.old", "callback" => "exec_db_mysql_old_fetch_all"),
array("driver" => "mysql.cmd", "callback" => "exec_db_mysql_cmd_fetch_all"), array("driver" => "mysql.cmd", "callback" => "exec_db_mysql_cmd_fetch_all"),
array("driver" => "oracle", "callback" => "exec_db_oracle_fetch_all"), array("driver" => "oracle", "callback" => "exec_db_oracle_fetch_all"),
//array("driver" => "pgsql", "callback" => "exec_db_pgsql_fetch_all"), array("driver" => "pgsql", "callback" => "exec_db_pgsql_fetch_all"),
array("driver" => "mssql.pdo", "callback" => "exec_db_mssql_fetch_all"), array("driver" => "mssql.pdo", "callback" => "exec_db_mssql_fetch_all"),
); );
$rows = exec_db_alt_callback($rules, array($sql, $bind)); $rows = exec_db_alt_callback($rules, array($sql, $bind, $options), $driver);
return $rows; return $rows;
} }