JDatabaseMySQL/queryBatch: Difference between revisions
From Joomla! Documentation
m clean up |
m preparing for archive only |
||
| Line 80: | Line 80: | ||
===Examples=== | ===Examples=== | ||
=== Code Examples === | |||
<dpl> | <dpl> | ||
noresultsheader=\n | noresultsheader=\n | ||
category=queryBatch | category=queryBatch | ||
category=JDatabaseMySQL | category=JDatabaseMySQL | ||
namespace=CodeExample | |||
category=MethodExample | category=MethodExample | ||
include=* | include=* | ||
Latest revision as of 01:28, 25 March 2017
Description
Execute a batch query
<! removed transcluded page call, red link never existed >
Syntax
queryBatch($abort_on_error=true, $p_transaction_safe=false)
| Parameter Name | Default Value | Description |
|---|---|---|
| $abort_on_error | true | |
| $p_transaction_safe | false |
Returns
mixed A database resource if successful, FALSE if not.
Defined in
libraries/joomla/database/database/mysql.php
Importing
jimport( 'joomla.database.database.mysql' );
Source Body
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 = mysql_query($command_line, $this->_connection);
if ($this->_debug) {
$this->_ticker++;
$this->_log[] = $command_line;
}
if (!$this->_cursor) {
$error = 1;
$this->_errorNum .= mysql_errno($this->_connection) . ' ';
$this->_errorMsg .= mysql_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
Code Examples