Difference between revisions of "JDatabaseMySQLi/queryBatch"
From Joomla! Documentation
< API16:JDatabaseMySQLi
(New page: ===Description===
Execute a batch query
<span class="editsection" style="font-size:76%;">
<nowiki>[</nowiki>Edit Descripton<nowiki>]</nowiki...) |
m (preparing for archive only) |
||
(2 intermediate revisions by the same user not shown) | |||
Line 2: | Line 2: | ||
Execute a batch query | Execute a batch query | ||
− | |||
− | |||
− | |||
− | + | ||
+ | <! removed transcluded page call, red link never existed > | ||
===Syntax=== | ===Syntax=== | ||
Line 81: | Line 79: | ||
</source> | </source> | ||
− | + | ||
− | + | <! removed transcluded page call, red link never existed > | |
− | < | ||
− | |||
===Examples=== | ===Examples=== | ||
− | + | === Code Examples === | |
<dpl> | <dpl> | ||
noresultsheader=\n | noresultsheader=\n | ||
category=queryBatch | category=queryBatch | ||
category=JDatabaseMySQLi | category=JDatabaseMySQLi | ||
− | + | namespace=CodeExample | |
category=MethodExample | category=MethodExample | ||
include=* | include=* | ||
format= ,,, | format= ,,, | ||
</dpl> | </dpl> | ||
+ | [[Category:Archived pages API16]] |
Latest revision as of 20:29, 24 March 2017
The "API16" namespace is an archived namespace. This page contains information for a Joomla! version which is no longer supported. It exists only as a historical reference, it will not be improved and its content may be incomplete and/or contain broken links.
Description[edit]
Execute a batch query
<! removed transcluded page call, red link never existed >
Syntax[edit]
queryBatch($abort_on_error=true, $p_transaction_safe=false)
Parameter Name | Default Value | Description |
---|---|---|
$abort_on_error | true | |
$p_transaction_safe | false |
Returns[edit]
mixed A database resource if successful, FALSE if not.
Defined in[edit]
libraries/joomla/database/database/mysqli.php
Importing[edit]
jimport( 'joomla.database.database.mysqli' );
Source Body[edit]
public function queryBatch($abort_on_error=true, $p_transaction_safe = false)
{
$sql = $this->replacePrefix((string) $this->_sql);
$this->_errorNum = 0;
$this->_errorMsg = '';
if ($p_transaction_safe) {
$sql = rtrim($sql, "; \t\r\n\0");
$si = $this->getVersion();
preg_match_all("/(\d+)\.(\d+)\.(\d+)/i", $si, $m);
if ($m[1] >= 4) {
$sql = 'START TRANSACTION;' . $sql . '; COMMIT;';
}
else if ($m[2] >= 23 && $m[3] >= 19) {
$sql = 'BEGIN WORK;' . $sql . '; COMMIT;';
}
else if ($m[2] >= 23 && $m[3] >= 17) {
$sql = 'BEGIN;' . $sql . '; COMMIT;';
}
}
$query_split = $this->splitSql($sql);
$error = 0;
foreach ($query_split as $command_line) {
$command_line = trim($command_line);
if ($command_line != '') {
$this->_cursor = mysqli_query($this->_connection, $command_line);
if ($this->_debug) {
$this->_ticker++;
$this->_log[] = $command_line;
}
if (!$this->_cursor) {
$error = 1;
$this->_errorNum .= mysqli_errno($this->_connection) . ' ';
$this->_errorMsg .= mysqli_error($this->_connection)." SQL=$command_line <br />";
if ($abort_on_error) {
return $this->_cursor;
}
}
}
}
return $error ? false : true;
}
<! removed transcluded page call, red link never existed >
Examples[edit]
Code Examples[edit]