Index: includes/bootstrap.inc
===================================================================
RCS file: /cvs/drupal/drupal/includes/bootstrap.inc,v
retrieving revision 1.228
diff -u -p -r1.228 bootstrap.inc
--- includes/bootstrap.inc	20 Sep 2008 20:22:23 -0000	1.228
+++ includes/bootstrap.inc	25 Sep 2008 04:51:22 -0000
@@ -445,7 +445,7 @@ function drupal_get_filename($type, $nam
   // the database.  This is required because this function is called both
   // before we have a database connection (i.e. during installation) and
   // when a database connection fails.
-  elseif (db_is_active() && (($file = db_result(db_query("SELECT filename FROM {system} WHERE name = '%s' AND type = '%s'", $name, $type))) && file_exists($file))) {
+  elseif (db_is_active() && (($file = db_query("SELECT filename FROM {system} WHERE name = :name AND type = :type", array(':name' => $name, ':type' => $type))->fetchField()) && file_exists($file))) {
     $files[$type][$name] = $file;
   }
   else {
@@ -482,7 +482,7 @@ function variable_init($conf = array()) 
   }
   else {
     $result = db_query('SELECT * FROM {variable}');
-    while ($variable = db_fetch_object($result)) {
+    foreach ($result as $variable) {
       $variables[$variable->name] = unserialize($variable->value);
     }
     cache_set('variables', $variables);
@@ -539,7 +539,7 @@ function variable_set($name, $value) {
 function variable_del($name) {
   global $conf;
 
-  db_query("DELETE FROM {variable} WHERE name = '%s'", $name);
+  db_delete('variable')->condition('name', $name)->execute();
   cache_clear_all('variables', 'cache');
 
   unset($conf[$name]);
@@ -924,8 +924,7 @@ function drupal_is_denied($ip) {
     return in_array($ip, $blocked_ips);
   }
   else {
-    $sql = "SELECT 1 FROM {blocked_ips} WHERE ip = '%s'";
-    return (bool) db_result(db_query($sql, $ip));
+    return (bool)db_query("SELECT 1 FROM {blocked_ips} WHERE ip = :ip", array(':ip' => $ip))->fetchField();
   }
 }
 
@@ -1142,10 +1141,7 @@ function language_list($field = 'languag
   // Init language list
   if (!isset($languages)) {
     if (variable_get('language_count', 1) > 1 || module_exists('locale')) {
-      $result = db_query('SELECT * FROM {languages} ORDER BY weight ASC, name ASC');
-      while ($row = db_fetch_object($result)) {
-        $languages['language'][$row->language] = $row;
-      }
+      $languages['language'] = db_query('SELECT * FROM {languages} ORDER BY weight ASC, name ASC')->fetchAllAssoc('language');
     }
     else {
       // No locale module, so use the default language only.
@@ -1340,7 +1336,11 @@ function drupal_function_exists($functio
     return TRUE;
   }
 
-  $file = db_result(db_query("SELECT filename FROM {registry} WHERE name = :name AND type = :type", array(':name' => $function, ':type' => 'function')));
+  $file = db_query("SELECT filename FROM {registry} WHERE name = :name AND type = :type", array(
+      ':name' => $function,
+      ':type' => 'function',
+    ))
+    ->fetchField();
   if ($file) {
     require_once DRUPAL_ROOT . '/' . $file;
     $checked[$function] = function_exists($function);
@@ -1388,7 +1388,11 @@ function drupal_autoload_class($class) {
  * Helper for registry_check_{interface, class}.
  */
 function _registry_check_code($type, $name) {
-  $file = db_result(db_query("SELECT filename FROM {registry} WHERE name = :name AND type = :type", array(':name' => $name, ':type' => $type)));
+  $file = db_query("SELECT filename FROM {registry} WHERE name = :name AND type = :type", array(
+      ':name' => $name,
+      ':type' => $type,
+    ))
+    ->fetchField();
   if ($file) {
     require_once DRUPAL_ROOT . '/' . $file;
     registry_mark_code($type, $name);
@@ -1464,18 +1468,14 @@ function registry_cache_hook_implementat
  */
 function registry_cache_path_files() {
   if ($used_code = registry_mark_code(NULL, NULL, TRUE)) {
-    $files = array();
-    $type_sql = array();
-    $params = array();
+    $select = db_select('registry')->distinct();
+    $select->addField('registry', 'filename', 'filename');
+
     foreach ($used_code as $type => $names) {
-      $type_sql[] = "(name IN (" . db_placeholders($names, 'varchar') . ") AND type = '%s')";
-      $params = array_merge($params, $names);
-      $params[] = $type;
-    }
-    $res = db_query("SELECT DISTINCT filename FROM {registry} WHERE " . implode(' OR ', $type_sql), $params);
-    while ($row = db_fetch_object($res)) {
-      $files[] = $row->filename;
+      $select->condition('name', $names, 'IN');
     }
+    $files = $select->execute()->fetchCol();
+
     if ($files) {
       sort($files);
       // Only write this to cache if the file list we are going to cache
