summaryrefslogtreecommitdiffstats
path: root/system/database
diff options
context:
space:
mode:
authorAndrey Andreev <narf@bofh.bg>2012-10-24 16:38:48 +0200
committerAndrey Andreev <narf@bofh.bg>2012-10-24 16:38:48 +0200
commit9f808b0a77eac21bc84f9d729817be54b37905a1 (patch)
treefc453f48171ce656b56797d2d9b2f566c69a11c1 /system/database
parentd98785a1661b46f0a1cb83168347fda4c4c7dde9 (diff)
An alternative to affected_rows() for insert_batch() and update_batch() (ref #126)
Diffstat (limited to 'system/database')
-rw-r--r--system/database/DB_query_builder.php24
1 files changed, 12 insertions, 12 deletions
diff --git a/system/database/DB_query_builder.php b/system/database/DB_query_builder.php
index 5fc3d1866..5ea9643fe 100644
--- a/system/database/DB_query_builder.php
+++ b/system/database/DB_query_builder.php
@@ -1216,9 +1216,9 @@ abstract class CI_DB_query_builder extends CI_DB_driver {
*
* Compiles batch insert strings and runs the queries
*
- * @param string the table to retrieve the results from
- * @param array an associative array of insert values
- * @return object
+ * @param string $table = '' table to insert into
+ * @param array $set an associative array of insert values
+ * @return int number of rows inserted or FALSE on failure
*/
public function insert_batch($table = '', $set = NULL)
{
@@ -1229,12 +1229,8 @@ abstract class CI_DB_query_builder extends CI_DB_driver {
if (count($this->qb_set) === 0)
{
- if ($this->db_debug)
- {
- // No valid data array. Folds in cases where keys and values did not match up
- return $this->display_error('db_must_use_set');
- }
- return FALSE;
+ // No valid data array. Folds in cases where keys and values did not match up
+ return ($this->db_debug) ? $this->display_error('db_must_use_set') : FALSE;
}
if ($table === '')
@@ -1248,13 +1244,15 @@ abstract class CI_DB_query_builder extends CI_DB_driver {
}
// Batch this baby
+ $affected_rows = 0;
for ($i = 0, $total = count($this->qb_set); $i < $total; $i += 100)
{
$this->query($this->_insert_batch($this->protect_identifiers($table, TRUE, NULL, FALSE), $this->qb_keys, array_slice($this->qb_set, $i, 100)));
+ $affected_rows += $this->affected_rows();
}
$this->_reset_write();
- return TRUE;
+ return $affected_rows;
}
// --------------------------------------------------------------------
@@ -1621,7 +1619,7 @@ abstract class CI_DB_query_builder extends CI_DB_driver {
* @param string the table to retrieve the results from
* @param array an associative array of update values
* @param string the where key
- * @return bool
+ * @return int number of rows affected or FALSE on failure
*/
public function update_batch($table = '', $set = NULL, $index = NULL)
{
@@ -1654,13 +1652,15 @@ abstract class CI_DB_query_builder extends CI_DB_driver {
}
// Batch this baby
+ $affected_rows = 0;
for ($i = 0, $total = count($this->qb_set); $i < $total; $i += 100)
{
$this->query($this->_update_batch($this->protect_identifiers($table, TRUE, NULL, FALSE), array_slice($this->qb_set, $i, 100), $this->protect_identifiers($index)));
+ $affected_rows += $this->affected_rows();
}
$this->_reset_write();
- return TRUE;
+ return $affected_rows;
}
// --------------------------------------------------------------------