Skip to content

Commit

Permalink
Merge branch 'hotfix/5.22'
Browse files Browse the repository at this point in the history
  • Loading branch information
dregad committed Jul 25, 2023
2 parents 3edd8a2 + 9ff17cf commit f86db42
Showing 1 changed file with 27 additions and 27 deletions.
54 changes: 27 additions & 27 deletions drivers/adodb-oci8.inc.php
Original file line number Diff line number Diff line change
Expand Up @@ -806,17 +806,18 @@ function SelectLimit($sql,$nrows=-1,$offset=-1, $inputarr=false,$secs2cache=0)
$hint = '';
}

// If non-bound statement, $inputarr is false
if (!$inputarr) {
$inputarr = array();
}

if ($offset == -1 || ($offset < $this->selectOffsetAlg1 && 0 < $nrows && $nrows < 1000)) {
if ($nrows > 0) {
if ($offset > 0) {
$nrows += $offset;
}
$sql = "select * from (".$sql.") where rownum <= :adodb_offset";

// If non-bound statement, $inputarr is false
if (!$inputarr) {
$inputarr = array();
}
$inputarr['adodb_offset'] = $nrows;
$nrows = -1;
}
Expand All @@ -834,32 +835,31 @@ function SelectLimit($sql,$nrows=-1,$offset=-1, $inputarr=false,$secs2cache=0)
}
$stmt = $stmt_arr[1];

if (is_array($inputarr)) {
foreach($inputarr as $k => $v) {
$i=0;
if ($this->databaseType == 'oci8po') {
$bv_name = ":".$i++;
foreach($inputarr as $k => $v) {
$i = 0;
if ($this->databaseType == 'oci8po') {
$bv_name = ":" . $i++;
} else {
$bv_name = ":" . $k;
}
if (is_array($v)) {
// suggested by g.giunta@libero.
if (sizeof($v) == 2) {
oci_bind_by_name($stmt, $bv_name, $inputarr[$k][0], $v[1]);
} else {
$bv_name = ":".$k;
oci_bind_by_name($stmt, $bv_name, $inputarr[$k][0], $v[1], $v[2]);
}
if (is_array($v)) {
// suggested by g.giunta@libero.
if (sizeof($v) == 2) {
oci_bind_by_name($stmt,$bv_name,$inputarr[$k][0],$v[1]);
}
else {
oci_bind_by_name($stmt,$bv_name,$inputarr[$k][0],$v[1],$v[2]);
}
} else {
$len = -1;
if ($v === ' ') {
$len = 1;
}
if (isset($bindarr)) {
// prepared sql, so no need to oci_bind_by_name again
$bindarr[$k] = $v;
} else {
$len = -1;
if ($v === ' ') {
$len = 1;
}
if (isset($bindarr)) { // is prepared sql, so no need to oci_bind_by_name again
$bindarr[$k] = $v;
} else { // dynamic sql, so rebind every time
oci_bind_by_name($stmt,$bv_name,$inputarr[$k],$len);
}
// dynamic sql, so rebind every time
oci_bind_by_name($stmt, $bv_name, $inputarr[$k], $len);
}
}
}
Expand Down

0 comments on commit f86db42

Please sign in to comment.