本文整理汇总了PHP中OCISetPrefetch函数的典型用法代码示例。如果您正苦于以下问题:PHP OCISetPrefetch函数的具体用法?PHP OCISetPrefetch怎么用?PHP OCISetPrefetch使用的例子?那么, 这里精选的函数代码示例或许可以为您提供帮助。
在下文中一共展示了OCISetPrefetch函数的4个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。
示例1: _query
function _query($sql,$inputarr)
{
if (is_array($sql)) { // is prepared sql
$stmt = $sql[1];
// we try to bind to permanent array, so that OCIBindByName is persistent
// and carried out once only - note that max array element size is 4000 chars
if (is_array($inputarr)) {
$bindpos = $sql[3];
if (isset($this->_bind[$bindpos])) {
// all tied up already
$bindarr = $this->_bind[$bindpos];
} else {
// one statement to bind them all
$bindarr = array();
foreach($inputarr as $k => $v) {
$bindarr[$k] = $v;
OCIBindByName($stmt,":$k",$bindarr[$k],is_string($v) && strlen($v)>4000 ? -1 : 4000);
}
$this->_bind[$bindpos] = $bindarr;
}
}
} else {
$stmt=OCIParse($this->_connectionID,$sql);
}
$this->_stmt = $stmt;
if (!$stmt) return false;
if (defined('ADODB_PREFETCH_ROWS')) @OCISetPrefetch($stmt,ADODB_PREFETCH_ROWS);
if (is_array($inputarr)) {
foreach($inputarr as $k => $v) {
if (is_array($v)) {
if (sizeof($v) == 2) // suggested by g.giunta@libero.
OCIBindByName($stmt,":$k",$inputarr[$k][0],$v[1]);
else
OCIBindByName($stmt,":$k",$inputarr[$k][0],$v[1],$v[2]);
if ($this->debug==99) {
if (is_object($v[0]))
echo "name=:$k",' len='.$v[1],' type='.$v[2],'<br>';
else
echo "name=:$k",' var='.$inputarr[$k][0],' len='.$v[1],' type='.$v[2],'<br>';
}
} else {
$len = -1;
if ($v === ' ') $len = 1;
if (isset($bindarr)) { // is prepared sql, so no need to ocibindbyname again
$bindarr[$k] = $v;
} else { // dynamic sql, so rebind every time
OCIBindByName($stmt,":$k",$inputarr[$k],$len);
}
}
}
}
$this->_errorMsg = false;
$this->_errorCode = false;
if (OCIExecute($stmt,$this->_commit)) {
//OCIInternalDebug(1);
if (count($this -> _refLOBs) > 0) {
foreach ($this -> _refLOBs as $key => $value) {
if ($this -> _refLOBs[$key]['TYPE'] == true) {
$tmp = $this -> _refLOBs[$key]['LOB'] -> load();
if ($this -> debug) {
ADOConnection::outp("<b>OUT LOB</b>: LOB has been loaded. <br>");
}
//$_GLOBALS[$this -> _refLOBs[$key]['VAR']] = $tmp;
$this -> _refLOBs[$key]['VAR'] = $tmp;
} else {
$this->_refLOBs[$key]['LOB']->save($this->_refLOBs[$key]['VAR']);
$this -> _refLOBs[$key]['LOB']->free();
unset($this -> _refLOBs[$key]);
if ($this->debug) {
ADOConnection::outp("<b>IN LOB</b>: LOB has been saved. <br>");
}
}
}
}
switch (@OCIStatementType($stmt)) {
case "SELECT":
return $stmt;
case 'DECLARE':
case "BEGIN":
if (is_array($sql) && !empty($sql[4])) {
$cursor = $sql[4];
if (is_resource($cursor)) {
$ok = OCIExecute($cursor);
return $cursor;
}
return $stmt;
} else {
if (is_resource($stmt)) {
OCIFreeStatement($stmt);
return true;
//.........这里部分代码省略.........
示例2: _query
function _query($sql, $inputarr)
{
if (is_array($sql)) {
// is prepared sql
$stmt = $sql[1];
// we try to bind to permanent array, so that OCIBindByName is persistent
// and carried out once only - note that max array element size is 4000 chars
if (is_array($inputarr)) {
$bindpos = $sql[3];
if (isset($this->_bind[$bindpos])) {
// all tied up already
$bindarr =& $this->_bind[$bindpos];
} else {
// one statement to bind them all
$bindarr = array();
foreach ($inputarr as $k => $v) {
$bindarr[$k] = $v;
OCIBindByName($stmt, ":{$k}", $bindarr[$k], 4000);
}
$this->_bind[$bindpos] =& $bindarr;
}
}
} else {
$stmt = @OCIParse($this->_connectionID, $sql);
}
$this->_stmt = $stmt;
if (!$stmt) {
return false;
}
if (defined('ADODB_PREFETCH_ROWS')) {
@OCISetPrefetch($stmt, ADODB_PREFETCH_ROWS);
}
if (is_array($inputarr)) {
foreach ($inputarr as $k => $v) {
if (is_array($v)) {
if (sizeof($v) == 2) {
// suggested by g.giunta@libero.
OCIBindByName($stmt, ":{$k}", $inputarr[$k][0], $v[1]);
} else {
OCIBindByName($stmt, ":{$k}", $inputarr[$k][0], $v[1], $v[2]);
}
} else {
$len = -1;
if ($v === ' ') {
$len = 1;
}
if (isset($bindarr)) {
// is prepared sql, so no need to ocibindbyname again
$bindarr[$k] = $v;
} else {
// dynamic sql, so rebind every time
OCIBindByName($stmt, ":{$k}", $inputarr[$k], $len);
}
}
}
}
if (OCIExecute($stmt, $this->_commit)) {
switch (@OCIStatementType($stmt)) {
case "SELECT":
return $stmt;
case "BEGIN":
if (isset($sql[4])) {
// jlim
$cursor = $sql[4];
// jlim
OCIExecute($cursor);
return $cursor;
} else {
return $stmt;
}
break;
default:
return true;
}
/* Now this could be an Update/Insert or Delete */
//if (@OCIStatementType($stmt) != 'SELECT') return true;
//return $stmt;
}
return false;
}
示例3: _query
function _query($sql, $inputarr)
{
if (is_array($sql)) {
// is prepared sql
$stmt = $sql[1];
// we try to bind to permanent array, so that OCIBindByName is persistent
// and carried out once only - note that max array element size is 4000 chars
if (is_array($inputarr)) {
$bindpos = $sql[3];
if (isset($this->_bind[$bindpos])) {
// all tied up already
$bindarr =& $this->_bind[$bindpos];
} else {
// one statement to bind them all
$bindarr = array();
foreach ($inputarr as $k => $v) {
$bindarr[$k] = $v;
OCIBindByName($stmt, ":{$k}", $bindarr[$k], 4000);
}
$this->_bind[$bindpos] =& $bindarr;
}
}
} else {
$stmt = OCIParse($this->_connectionID, $sql);
}
$this->_stmt = $stmt;
if (!$stmt) {
return false;
}
if (defined('ADODB_PREFETCH_ROWS')) {
@OCISetPrefetch($stmt, ADODB_PREFETCH_ROWS);
}
if (is_array($inputarr)) {
foreach ($inputarr as $k => $v) {
if (is_array($v)) {
if (sizeof($v) == 2) {
// suggested by g.giunta@libero.
OCIBindByName($stmt, ":{$k}", $inputarr[$k][0], $v[1]);
} else {
OCIBindByName($stmt, ":{$k}", $inputarr[$k][0], $v[1], $v[2]);
}
if ($this->debug == 99) {
echo "name=:{$k}", ' var=' . $inputarr[$k][0], ' len=' . $v[1], ' type=' . $v[2], '<br>';
}
} else {
$len = -1;
if ($v === ' ') {
$len = 1;
}
if (isset($bindarr)) {
// is prepared sql, so no need to ocibindbyname again
$bindarr[$k] = $v;
} else {
// dynamic sql, so rebind every time
OCIBindByName($stmt, ":{$k}", $inputarr[$k], $len);
}
}
}
}
$this->_errorMsg = false;
$this->_errorCode = false;
if (OCIExecute($stmt, $this->_commit)) {
switch (@OCIStatementType($stmt)) {
case "SELECT":
return $stmt;
case "BEGIN":
if (is_array($sql) && !empty($sql[4])) {
$cursor = $sql[4];
if (is_resource($cursor)) {
$ok = OCIExecute($cursor);
return $cursor;
}
return $stmt;
} else {
if (is_resource($stmt)) {
OCIFreeStatement($stmt);
return true;
}
return $stmt;
}
break;
default:
// ociclose -- no because it could be used in a LOB?
return true;
}
}
return false;
}
示例4: _query
function _query($sql, $inputarr)
{
//if (!is_resource($sql))
$stmt = OCIParse($this->_connectionID, $sql);
//else $stmt = $sql;
$this->_stmt = $stmt;
if (!$stmt) {
return false;
}
if (defined('ADODB_PREFETCH_ROWS')) {
@OCISetPrefetch($stmt, ADODB_PREFETCH_ROWS);
}
if (is_array($inputarr)) {
foreach ($inputarr as $k => $v) {
if (is_array($v)) {
OCIBindByName($stmt, ":{$k}", $inputarr[$k][0], $v[1], $v[2]);
//print_r($v);
} else {
$len = -1;
if ($inputarr[$k] === ' ') {
$len = 1;
}
OCIBindByName($stmt, ":{$k}", $inputarr[$k], $len);
//print " :$k $len ";
}
}
}
if (OCIExecute($stmt, $this->_commit)) {
/* Now this could be an Update/Insert or Delete */
if (strtoupper(substr($sql, 0, 6)) !== 'SELECT') {
return true;
}
return $stmt;
}
return false;
}