Revision 8596+
+ +-
+
- Removed sql_build_array('MULTI_INSERT'... statements. +
- Added sql_multi_insert() explanation. +
Revision 1.31
-
diff --git a/phpBB/includes/db/dbal.php b/phpBB/includes/db/dbal.php
index 21d095155e..e55a565ea4 100644
--- a/phpBB/includes/db/dbal.php
+++ b/phpBB/includes/db/dbal.php
@@ -34,7 +34,7 @@ class dbal
var $query_hold = '';
var $html_hold = '';
var $sql_report = '';
-
+
var $persistency = false;
var $user = '';
var $server = '';
@@ -47,7 +47,7 @@ class dbal
var $sql_error_sql = '';
// Holding the error information - only populated if sql_error_triggered is set
var $sql_error_returned = array();
-
+
// Holding transaction count
var $transactions = 0;
@@ -137,7 +137,7 @@ class dbal
{
$this->sql_freeresult($query_id);
}
-
+
return $this->_sql_close();
}
@@ -179,7 +179,7 @@ class dbal
return $result;
}
-
+
return false;
}
@@ -300,7 +300,7 @@ class dbal
* Build sql statement from array for insert/update/select statements
*
* Idea for this from Ikonboard
- * Possible query values: INSERT, INSERT_SELECT, MULTI_INSERT, UPDATE, SELECT
+ * Possible query values: INSERT, INSERT_SELECT, UPDATE, SELECT
*
*/
function sql_build_array($query, $assoc_ary = false)
@@ -333,24 +333,7 @@ class dbal
}
else if ($query == 'MULTI_INSERT')
{
- $ary = array();
- foreach ($assoc_ary as $id => $sql_ary)
- {
- // If by accident the sql array is only one-dimensional we build a normal insert statement
- if (!is_array($sql_ary))
- {
- return $this->sql_build_array('INSERT', $assoc_ary);
- }
-
- $values = array();
- foreach ($sql_ary as $key => $var)
- {
- $values[] = $this->_sql_validate_value($var);
- }
- $ary[] = '(' . implode(', ', $values) . ')';
- }
-
- $query = ' (' . implode(', ', array_keys($assoc_ary[0])) . ') VALUES ' . implode(', ', $ary);
+ trigger_error('The MULTI_INSERT query value is no longer supported. Please use sql_multi_insert() instead.', E_USER_ERROR);
}
else if ($query == 'UPDATE' || $query == 'SELECT')
{
@@ -435,7 +418,25 @@ class dbal
if ($this->multi_insert)
{
- $this->sql_query('INSERT INTO ' . $table . ' ' . $this->sql_build_array('MULTI_INSERT', $sql_ary));
+ $ary = array();
+ foreach ($sql_ary as $id => $_sql_ary)
+ {
+ // If by accident the sql array is only one-dimensional we build a normal insert statement
+ if (!is_array($_sql_ary))
+ {
+ $query = $this->sql_build_array('INSERT', $sql_ary);
+ break;
+ }
+
+ $values = array();
+ foreach ($_sql_ary as $key => $var)
+ {
+ $values[] = $this->_sql_validate_value($var);
+ }
+ $ary[] = '(' . implode(', ', $values) . ')';
+ }
+
+ $this->sql_query('INSERT INTO ' . $table . ' ' . ' (' . implode(', ', array_keys($sql_ary[0])) . ') VALUES ' . implode(', ', $ary));
}
else
{
@@ -700,7 +701,7 @@ class dbal
-
+
' . $this->html_hold . '
@@ -728,24 +729,24 @@ class dbal case 'start': $this->query_hold = $query; $this->html_hold = ''; - + $this->_sql_report($mode, $query); $this->curtime = explode(' ', microtime()); $this->curtime = $this->curtime[0] + $this->curtime[1]; break; - + case 'add_select_row': $html_table = func_get_arg(2); $row = func_get_arg(3); - + if (!$html_table && sizeof($row)) { $html_table = true; $this->html_hold .= '
' . (($val) ? ucwords(str_replace('_', ' ', $val)) : ' ') . ' | '; @@ -761,7 +762,7 @@ class dbal $this->html_hold .= '' . (($val) ? $val : ' ') . ' | '; } $this->html_hold .= '
---|