Go to most recent revision | Blame | Last modification | View Log
<?php
// $Id$
function da_sql_limit($limit,$point,$config)
{
switch($point){
case 0:
return '';
case 1:
return "AND ROWNUM <= $limit";
case 2:
return '';
}
}
function da_sql_host_connect($server,$config)
{
if ($config[sql_use_http_credentials] == 'yes'){
global $HTTP_SERVER_VARS;
$SQL_user = $HTTP_SERVER_VARS["PHP_AUTH_USER"];
$SQL_passwd = $HTTP_SERVER_VARS["PHP_AUTH_PW"];
}
else{
$SQL_user = $config[sql_username];
$SQL_passwd = $config[sql_password];
}
$link = @ocilogon($SQL_user, $SQL_passwd, $config[sql_database]);
$res = @da_sql_query($link,$config,"ALTER SESSION SET NLS_TIMESTAMP_TZ_FORMAT='YYYY-MM-DD HH24:MI:SS.FF TZH:TZM'");
return $link;
}
function da_sql_connect($config)
{
if ($config[sql_use_http_credentials] == 'yes'){
global $HTTP_SERVER_VARS;
$SQL_user = $HTTP_SERVER_VARS["PHP_AUTH_USER"];
$SQL_passwd = $HTTP_SERVER_VARS["PHP_AUTH_PW"];
}
else{
$SQL_user = $config[sql_username];
$SQL_passwd = $config[sql_password];
}
$link = @ocilogon($SQL_user, $SQL_passwd, $config[sql_database]);
$res = @da_sql_query($link,$config,"ALTER SESSION SET NLS_TIMESTAMP_TZ_FORMAT='YYYY-MM-DD HH24:MI:SS.FF TZH:TZM'");
return $link;
}
function da_sql_pconnect($config)
{
if ($config[sql_use_http_credentials] == 'yes'){
global $HTTP_SERVER_VARS;
$SQL_user = $HTTP_SERVER_VARS["PHP_AUTH_USER"];
$SQL_passwd = $HTTP_SERVER_VARS["PHP_AUTH_PW"];
}
else{
$SQL_user = $config[sql_username];
$SQL_passwd = $config[sql_password];
}
$link = @ociplogon($SQL_user, $SQL_passwd, $config[sql_database]);
$res = @da_sql_query($link,$config,"ALTER SESSION SET NLS_TIMESTAMP_TZ_FORMAT='YYYY-MM-DD HH24:MI:SS.FF TZH:TZM'");
return $link;
}
function da_sql_close($link,$config)
{
@ociclose($link);
}
function da_sql_escape_string($string)
{
return addslashes($string);
}
function da_sql_query($link,$config,$query)
{
$trimmed_query = rtrim($query, ";");
if ($config[sql_debug] == 'true') {
print "<b>DEBUG(SQL,OCI DRIVER): Query: <i>$trimmed_query</i></b><br>\n";
}
$statement = OCIParse($link,$trimmed_query);
OCIExecute($statement);
return $statement;
}
function da_sql_num_rows($statement,$config)
{
// Unfortunately we need to fetch the statement as ocirowcount doesn't work on SELECTs
$rows = OCIFetchStatement($statement,$res);
if ($config[sql_debug] == 'true'){
print "<b>DEBUG(SQL,OCI DRIVER): Query Result: Num rows:: " . $rows . "</b><br>\n";
}
// Unfortunately we need to re-execute because the statement cursor is reset after OCIFetchStatement :-(
OCIExecute($statement);
return $rows;
}
function da_sql_fetch_array($statement,$config)
{
OCIFetchInto($statement, $temprow, OCI_ASSOC);
$row = array_change_key_case($temprow, CASE_LOWER);
if ($config[sql_debug] == 'true') {
print "<b>DEBUG(SQL,OCI DRIVER): Query Result: <pre>";
print_r($row);
print "</b></pre>\n";
}
return $row;
}
function da_sql_affected_rows($link,$statement,$config)
{
if ($config[sql_debug] == 'true')
print "<b>DEBUG(SQL,OCI DRIVER): Query Result: Affected rows:: " . @ocirowcount($statement) . "</b><br>\n";
return @ocirowcount($statement);
}
function da_sql_list_fields($table,$link,$config)
{
$res = @da_sql_query($link,$config,"SELECT * from $table WHERE ROWNUM <=1");
if ($res){
$fields[res]=Array();
for ($i = 1;$i<=ocinumcols($res);$i++) {
array_push($fields[res],strtolower(OCIColumnName($res,$i)));
}
$fields[num]=@ocinumcols($res);
}else{
return NULL;
}
return $fields;
}
function da_sql_num_fields($fields,$config)
{
return $fields[num];
}
function da_sql_field_name($fields,$num,$config)
{
return $fields[res][$num];
}
function da_sql_error($link,$config)
{
return ocierror($link);
}
?>