|
[Phpbb-checkins] r8693 - in /branches/phpBB-3_0_0/phpBB:
docs/coding-guidelines.html includes/db/dbal.php
From: Meik Sievertsen <acydburn@ph...> - 2008-07-28 13:30
|
Author: acydburn
Date: Mon Jul 28 15:29:46 2008
New Revision: 8693
Log:
force the use of sql_multi_insert() for multi inserts... also adjusted the coding guidelines accordingly.
Modified:
branches/phpBB-3_0_0/phpBB/docs/coding-guidelines.html
branches/phpBB-3_0_0/phpBB/includes/db/dbal.php
Modified: branches/phpBB-3_0_0/phpBB/docs/coding-guidelines.html
==============================================================================
*** branches/phpBB-3_0_0/phpBB/docs/coding-guidelines.html (original)
--- branches/phpBB-3_0_0/phpBB/docs/coding-guidelines.html Mon Jul 28 15:29:46 2008
***************
*** 690,696 ****
$db->sql_query($sql);
</pre></div>
! <p>The <code>$db->sql_build_array()</code> function supports the following modes: <code>INSERT</code> (example above), <code>INSERT_SELECT</code> (building query for <code>INSERT INTO table (...) SELECT value, column ...</code> statements), <code>MULTI_INSERT</code> (for returning extended inserts), <code>UPDATE</code> (example above) and <code>SELECT</code> (for building WHERE statement [AND logic]).</p>
<h4>sql_in_set():</h4>
--- 690,718 ----
$db->sql_query($sql);
</pre></div>
! <p>The <code>$db->sql_build_array()</code> function supports the following modes: <code>INSERT</code> (example above), <code>INSERT_SELECT</code> (building query for <code>INSERT INTO table (...) SELECT value, column ...</code> statements), <code>UPDATE</code> (example above) and <code>SELECT</code> (for building WHERE statement [AND logic]).</p>
!
! <h4>sql_multi_insert():</h4>
!
! <p>If you want to insert multiple statements at once, please use the separate <code>sql_multi_insert()</code> method. An example:</p>
!
! <div class="codebox"><pre>
! $sql_ary = array();
!
! $sql_ary[] = array(
! 'somedata' => $my_string_1,
! 'otherdata' => $an_int_1,
! 'moredata' => $another_int_1,
! );
!
! $sql_ary[] = array(
! 'somedata' => $my_string_2,
! 'otherdata' => $an_int_2,
! 'moredata' => $another_int_2,
! );
!
! $db->sql_multi_insert(SOME_TABLE, $sql_ary);
! </pre></div>
<h4>sql_in_set():</h4>
***************
*** 2195,2200 ****
--- 2217,2229 ----
<div class="content">
+ <h3>Revision 8596+</h3>
+
+ <ul>
+ <li>Removed sql_build_array('MULTI_INSERT'... statements.</li>
+ <li>Added sql_multi_insert() explanation.</li>
+ </ul>
+
<h3>Revision 1.31</h3>
<ul>
Modified: branches/phpBB-3_0_0/phpBB/includes/db/dbal.php
==============================================================================
*** branches/phpBB-3_0_0/phpBB/includes/db/dbal.php (original)
--- branches/phpBB-3_0_0/phpBB/includes/db/dbal.php Mon Jul 28 15:29:46 2008
***************
*** 34,40 ****
var $query_hold = '';
var $html_hold = '';
var $sql_report = '';
!
var $persistency = false;
var $user = '';
var $server = '';
--- 34,40 ----
var $query_hold = '';
var $html_hold = '';
var $sql_report = '';
!
var $persistency = false;
var $user = '';
var $server = '';
***************
*** 47,53 ****
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;
--- 47,53 ----
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,143 ****
{
$this->sql_freeresult($query_id);
}
!
return $this->_sql_close();
}
--- 137,143 ----
{
$this->sql_freeresult($query_id);
}
!
return $this->_sql_close();
}
***************
*** 179,185 ****
return $result;
}
!
return false;
}
--- 179,185 ----
return $result;
}
!
return false;
}
***************
*** 300,306 ****
* 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
*
*/
function sql_build_array($query, $assoc_ary = false)
--- 300,306 ----
* Build sql statement from array for insert/update/select statements
*
* Idea for this from Ikonboard
! * Possible query values: INSERT, INSERT_SELECT, UPDATE, SELECT
*
*/
function sql_build_array($query, $assoc_ary = false)
***************
*** 333,356 ****
}
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);
}
else if ($query == 'UPDATE' || $query == 'SELECT')
{
--- 333,339 ----
}
else if ($query == 'MULTI_INSERT')
{
! 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,441 ****
if ($this->multi_insert)
{
! $this->sql_query('INSERT INTO ' . $table . ' ' . $this->sql_build_array('MULTI_INSERT', $sql_ary));
}
else
{
--- 418,442 ----
if ($this->multi_insert)
{
! $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,706 ****
</tr>
</tbody>
</table>
!
' . $this->html_hold . '
<p style="text-align: center;">
--- 701,707 ----
</tr>
</tbody>
</table>
!
' . $this->html_hold . '
<p style="text-align: center;">
***************
*** 728,751 ****
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 .= '<table cellspacing="1"><tr>';
!
foreach (array_keys($row) as $val)
{
$this->html_hold .= '<th>' . (($val) ? ucwords(str_replace('_', ' ', $val)) : ' ') . '</th>';
--- 729,752 ----
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 .= '<table cellspacing="1"><tr>';
!
foreach (array_keys($row) as $val)
{
$this->html_hold .= '<th>' . (($val) ? ucwords(str_replace('_', ' ', $val)) : ' ') . '</th>';
***************
*** 761,767 ****
$this->html_hold .= '<td class="' . $class . '">' . (($val) ? $val : ' ') . '</td>';
}
$this->html_hold .= '</tr>';
!
return $html_table;
break;
--- 762,768 ----
$this->html_hold .= '<td class="' . $class . '">' . (($val) ? $val : ' ') . '</td>';
}
$this->html_hold .= '</tr>';
!
return $html_table;
break;
***************
*** 792,798 ****
break;
default:
!
$this->_sql_report($mode, $query);
break;
--- 793,799 ----
break;
default:
!
$this->_sql_report($mode, $query);
break;
|
| Thread | Author | Date |
|---|---|---|
| [Phpbb-checkins] r8693 - in /branches/phpBB-3_0_0/phpBB: docs/coding-guidelines.html includes/db/dbal.php | Meik Sievertsen <acydburn@ph...> |