anewt-developers team mailing list archive
-
anewt-developers team
-
Mailing list archive
-
Message #00114
[Branch ~uws/anewt/anewt.uws] Rev 1709: [autorecord] Minor SQL logic refactoring
------------------------------------------------------------
revno: 1709
committer: Wouter Bolsterlee <uws@xxxxxxxxx>
branch nick: anewt.uws
timestamp: Sun 2009-07-26 16:38:59 +0200
message:
[autorecord] Minor SQL logic refactoring
Instead of using AnewtDatabasePreparedQuery and
AnewtDatabaseResultSet directly,
AnewtAutoRecord::find_by_sql() now builds a fullly escaped
SQL query string using AnewtDatabaseSQLTemplate, then uses
either AnewtDatabaseConnection::prepare_execute_fetch_one()
or AnewtDatabaseConnection::prepare_execute_fetch_all() to
fetch the records from the database.
This makes caching with AnewtDatabaseConnectionMemcache
possible, since that only works for
prepare_execute_fetch_one() and prepare_execute_fetch_all();
not for manually prepared queries.
modified:
autorecord/autorecord.lib.php
--
lp:anewt
https://code.launchpad.net/~uws/anewt/anewt.uws
Your team Anewt developers is subscribed to branch lp:anewt.
To unsubscribe from this branch go to https://code.launchpad.net/~uws/anewt/anewt.uws/+edit-subscription.
=== modified file 'autorecord/autorecord.lib.php'
--- autorecord/autorecord.lib.php 2009-07-21 19:34:32 +0000
+++ autorecord/autorecord.lib.php 2009-07-26 14:38:59 +0000
@@ -816,16 +816,19 @@
? ''
: sprintf('ORDER BY %s', $sql_order_by);
- $prepared_query = $connection->prepare('SELECT ?raw? FROM ?raw? ?raw?;');
- $result_set = $prepared_query->execute($sql_select, $sql_from, $sql_order_by_full);
+ $sql_full = $connection->create_sql_template
+ ('SELECT ?raw? FROM ?raw? ?raw?;')
+ ->fill($sql_select, $sql_from, $sql_order_by_full);
}
elseif (is_string($sql))
{
/* SQL string */
- $sql_filled = $connection->create_sql_template($sql)->fillv($values);
- $prepared_query = $connection->prepare('SELECT ?raw? FROM ?raw? ?raw?;');
- $result_set = $prepared_query->execute($sql_select, $sql_from, $sql_filled);
+ $sql_with_values = $connection->create_sql_template($sql)->fillv($values);
+
+ $sql_full =
+ $connection->create_sql_template('SELECT ?raw? FROM ?raw? ?raw?;')
+ ->fill($sql_select, $sql_from, $sql_with_values);
}
else
{
@@ -881,9 +884,13 @@
/* Combine */
- $sql_combined = $connection->create_sql_template(join(' ', $sql_parts))->fillv($values);
- $prepared_query = $connection->prepare('SELECT ?raw? FROM ?raw? ?raw?;');
- $result_set = $prepared_query->execute($sql_select, $sql_from, $sql_combined);
+ $sql_parts_combined =
+ $connection->create_sql_template(join(' ', $sql_parts))
+ ->fillv($values);
+
+ $sql_full =
+ $connection->create_sql_template('SELECT ?raw? FROM ?raw? ?raw?;')
+ ->fill($sql_select, $sql_from, $sql_parts_combined);
}
@@ -891,22 +898,17 @@
if ($just_one_result)
{
- $row = $result_set->fetch_one();
+ $row = $connection->prepare_execute_fetch_one($sql_full);
if (!$row)
return null;
- $out = AnewtAutoRecord::_db_object_from_array($class, $row);
- $result_set->free();
-
- return $out;
+ return AnewtAutoRecord::_db_object_from_array($class, $row);
}
else
{
- $rows = $result_set->fetch_all();
- $out = AnewtAutoRecord::_db_objects_from_arrays($class, $rows);
-
- return $out;
+ $rows = $connection->prepare_execute_fetch_all($sql_full);
+ return AnewtAutoRecord::_db_objects_from_arrays($class, $rows);
}
}