Index: modules/block/block.module
===================================================================
RCS file: /cvs/drupal/drupal/modules/block/block.module,v
retrieving revision 1.315
diff -u -r1.315 block.module
--- modules/block/block.module	15 Nov 2008 08:23:07 -0000	1.315
+++ modules/block/block.module	15 Nov 2008 13:07:55 -0000
@@ -190,7 +190,7 @@
       $blocks = array();
 
       $result = db_query('SELECT bid, info FROM {box} ORDER BY info');
-      while ($block = db_fetch_object($result)) {
+      foreach ($result as $block) {
         $blocks[$block->bid]['info'] = $block->info;
         // Not worth caching.
         $blocks[$block->bid]['cache'] = BLOCK_NO_CACHE;
@@ -212,7 +212,7 @@
       break;
 
     case 'view':
-      $block = db_fetch_object(db_query('SELECT body, format FROM {box} WHERE bid = %d', $delta));
+      $block = db_query('SELECT body, format FROM {box} WHERE bid = :bid', array(':bid' => $delta))->fetch();
       $data['content'] = check_markup($block->body, $block->format, '', FALSE);
       return $data;
   }
@@ -229,9 +229,9 @@
 
   init_theme();
 
-  $result = db_query("SELECT * FROM {block} WHERE theme = '%s'", $theme_key);
+  $result = db_query("SELECT * FROM {block} WHERE theme = :theme", array(':theme' => $theme_key), array('fetch' => PDO::FETCH_ASSOC));
   $old_blocks = array();
-  while ($old_block = db_fetch_array($result)) {
+  foreach ($result as $old_block) {
     $old_blocks[$old_block['module']][$old_block['delta']] = $old_block;
   }
 
@@ -289,14 +289,18 @@
   // Remove blocks that are no longer defined by the code from the database.
   foreach ($old_blocks as $module => $old_module_blocks) {
     foreach ($old_module_blocks as $delta => $block) {
-      db_query("DELETE FROM {block} WHERE module = '%s' AND delta = '%s' AND theme = '%s'", $module, $delta, $theme_key);
+      db_delete('block')
+      	->condition('module', $module)
+      	->condition('delta', $delta)
+      	->condition('theme', $theme_key)
+      	->execute();
     }
   }
   return $blocks;
 }
 
 function block_box_get($bid) {
-  return db_fetch_array(db_query("SELECT * FROM {box} WHERE bid = %d", $bid));
+  return db_query("SELECT * FROM {box} WHERE bid = :bid", array(':bid' => $bid), array('fetch' => PDO::FETCH_ASSOC))->fetch();
 }
 
 /**
@@ -335,8 +339,13 @@
     $edit['body_format'] = FILTER_FORMAT_DEFAULT;
   }
 
-  db_query("UPDATE {box} SET body = '%s', info = '%s', format = %d WHERE bid = %d", $edit['body'], $edit['info'], $edit['body_format'], $delta);
-
+  db_update('box')->fields(array(
+      'body' => $edit['body'],
+      'info' => $edit['info'],
+      'format' => $edit['body_format'],
+    ))
+    ->condition('bid', $delta)->execute();
+  
   return TRUE;
 }
 
@@ -346,7 +355,11 @@
 function block_user_form(&$edit, &$account, $category = NULL) {
   if ($category == 'account') {
     $rids = array_keys($account->roles);
+    // TODO: rewrite this as a dynamic query:
     $result = db_query("SELECT DISTINCT b.* FROM {block} b LEFT JOIN {block_role} r ON b.module = r.module AND b.delta = r.delta WHERE b.status = 1 AND b.custom != 0 AND (r.rid IN (" . db_placeholders($rids) . ") OR r.rid IS NULL) ORDER BY b.weight, b.module", $rids);
+    //$query = db_select('block');
+    //$query->addField('b.*');
+    // ...
     $form['block'] = array('#type' => 'fieldset', '#title' => t('Block configuration'), '#weight' => 3, '#collapsible' => TRUE, '#tree' => TRUE);
     while ($block = db_fetch_object($result)) {
       $data = module_invoke($block->module, 'block', 'list');
@@ -413,7 +426,11 @@
 
   $blocks = array();
   $rids = array_keys($user->roles);
+  // TODO: rewrite this as a dynamic query:
   $result = db_query(db_rewrite_sql("SELECT DISTINCT b.* FROM {block} b LEFT JOIN {block_role} r ON b.module = r.module AND b.delta = r.delta WHERE b.theme = '%s' AND b.status = 1 AND (r.rid IN (" . db_placeholders($rids) . ") OR r.rid IS NULL) ORDER BY b.region, b.weight, b.module", 'b', 'bid'), array_merge(array($theme_key), $rids));
+  //$query = db_select('block');
+  //$query->addField('b.*');
+  // ...
   while ($block = db_fetch_object($result)) {
     if (!isset($blocks[$block->region])) {
       $blocks[$block->region] = array();
Index: modules/block/block.admin.inc
===================================================================
RCS file: /cvs/drupal/drupal/modules/block/block.admin.inc,v
retrieving revision 1.28
diff -u -r1.28 block.admin.inc
--- modules/block/block.admin.inc	15 Nov 2008 08:23:07 -0000	1.28
+++ modules/block/block.admin.inc	15 Nov 2008 13:07:54 -0000
@@ -95,7 +95,15 @@
   foreach ($form_state['values'] as $block) {
     $block['status'] = $block['region'] != BLOCK_REGION_NONE;
     $block['region'] = $block['status'] ? $block['region'] : '';
-    db_query("UPDATE {block} SET status = %d, weight = %d, region = '%s' WHERE module = '%s' AND delta = '%s' AND theme = '%s'", $block['status'], $block['weight'], $block['region'], $block['module'], $block['delta'], $block['theme']);
+    db_update('block')->fields(array(
+        'status' => (int) $block['status'],
+        'weight' => $block['weight'],
+        'region' => $block['region'],
+      ))
+      ->condition('module', $block['module'])
+      ->condition('delta', $block['delta'])
+      ->condition('theme', $block['theme'])
+      ->execute();
   }
   drupal_set_message(t('The block settings have been updated.'));
   cache_clear_all();
@@ -148,7 +156,7 @@
     '#value' => $delta,
   );
 
-  $edit = db_fetch_array(db_query("SELECT pages, visibility, custom, title FROM {block} WHERE module = '%s' AND delta = '%s'", $module, $delta));
+  $edit = db_query("SELECT pages, visibility, custom, title FROM {block} WHERE module = :module AND delta = :delta", array(':module' => $module, ':delta' => $delta), array('fetch' => PDO::FETCH_ASSOC))->fetch();
 
   $form['block_settings'] = array(
     '#type' => 'fieldset',
@@ -197,13 +205,13 @@
 
   // Role-based visibility settings.
   $default_role_options = array();
-  $result = db_query("SELECT rid FROM {block_role} WHERE module = '%s' AND delta = '%s'", $module, $delta);
-  while ($role = db_fetch_object($result)) {
+  $result = db_query("SELECT rid FROM {block_role} WHERE module = :module AND delta = :delta", array(':module' => $module, ':delta' => $delta));
+  foreach ($result as $role) {
     $default_role_options[] = $role->rid;
   }
   $result = db_query('SELECT rid, name FROM {role} ORDER BY name');
   $role_options = array();
-  while ($role = db_fetch_object($result)) {
+  foreach ($result as $role) {
     $role_options[$role->rid] = $role->name;
   }
   $form['role_vis_settings'] = array(
@@ -263,7 +271,7 @@
 
 function block_admin_configure_validate($form, &$form_state) {
   if ($form_state['values']['module'] == 'block') {
-    if (empty($form_state['values']['info']) || db_result(db_query("SELECT COUNT(*) FROM {box} WHERE bid != %d AND info = '%s'", $form_state['values']['delta'], $form_state['values']['info']))) {
+    if (empty($form_state['values']['info']) || db_query("SELECT COUNT(*) FROM {box} WHERE bid != :bid AND info = :info", array(':bid' => $form_state['values']['delta'], ':info' => $form_state['values']['info']))->fetchField()) {
       form_set_error('info', t('Please ensure that each block description is unique.'));
     }
   }
@@ -271,10 +279,26 @@
 
 function block_admin_configure_submit($form, &$form_state) {
   if (!form_get_errors()) {
-    db_query("UPDATE {block} SET visibility = %d, pages = '%s', custom = %d, title = '%s' WHERE module = '%s' AND delta = '%s'", $form_state['values']['visibility'], trim($form_state['values']['pages']), $form_state['values']['custom'], $form_state['values']['title'], $form_state['values']['module'], $form_state['values']['delta']);
-    db_query("DELETE FROM {block_role} WHERE module = '%s' AND delta = '%s'", $form_state['values']['module'], $form_state['values']['delta']);
+    db_update('block')->fields(array(
+        'visibility' => $form_state['values']['visibility'],
+        'pages' => trim($form_state['values']['pages']),
+        'custom' => $form_state['values']['custom'],
+        'title' => $form_state['values']['title'],
+      ))
+      ->condition('module', $form_state['values']['module'])
+      ->condition('delta', $form_state['values']['delta'])
+      ->execute();
+    db_delete('block_role')
+      ->condition('module', $form_state['values']['module'])
+      ->condition('delta', $form_state['values']['delta'])
+      ->execute();
     foreach (array_filter($form_state['values']['roles']) as $rid) {
-      db_query("INSERT INTO {block_role} (rid, module, delta) VALUES (%d, '%s', '%s')", $rid, $form_state['values']['module'], $form_state['values']['delta']);
+      db_insert('block_role')->fields(array(
+          'rid' => $rid,
+          'module' => $form_state['values']['module'],
+          'delta' => $form_state['values']['delta'],
+        ))
+        ->execute();
     }
     module_invoke($form_state['values']['module'], 'block', 'save', $form_state['values']['delta'], $form_state['values']);
     drupal_set_message(t('The block configuration has been saved.'));
@@ -292,7 +316,7 @@
 }
 
 function block_add_block_form_validate($form, &$form_state) {
-  if (empty($form_state['values']['info']) || db_result(db_query("SELECT COUNT(*) FROM {box} WHERE info = '%s'", $form_state['values']['info']))) {
+  if (empty($form_state['values']['info']) || db_query("SELECT COUNT(*) FROM {box} WHERE info = :info", array(':info' => $form_state['values']['info']))->fetchField()) {
     form_set_error('info', t('Please ensure that each block description is unique.'));
   }
 }
@@ -301,17 +325,39 @@
  * Save the new custom block.
  */
 function block_add_block_form_submit($form, &$form_state) {
-  db_query("INSERT INTO {box} (body, info, format) VALUES ('%s', '%s', %d)", $form_state['values']['body'], $form_state['values']['info'], $form_state['values']['body_format']);
-  $delta = db_last_insert_id('box', 'bid');
+  db_insert('box')->fields(array(
+      'body' => $form_state['values']['body'],
+      'info' => $form_state['values']['info'],
+      'format' => $form_state['values']['body_format'],
+    ))
+    ->execute();
+    $delta = db_last_insert_id('box', 'bid');
 
   foreach (list_themes() as $key => $theme) {
     if ($theme->status) {
-      db_query("INSERT INTO {block} (visibility, pages, custom, title, module, theme, status, weight, delta, cache) VALUES(%d, '%s', %d, '%s', '%s', '%s', %d, %d, '%s', %d)", $form_state['values']['visibility'], trim($form_state['values']['pages']), $form_state['values']['custom'], $form_state['values']['title'], $form_state['values']['module'], $theme->name, 0, 0, $delta, BLOCK_NO_CACHE);
+      db_insert('block')->fields(array(
+          'visibility' => (int) $form_state['values']['visibility'],
+          'pages' => trim($form_state['values']['pages']),
+          'custom' => (int) $form_state['values']['custom'],
+          'title' => $form_state['values']['title'],
+          'module' => $form_state['values']['module'],
+          'theme' => $theme->name,
+          'status' => 0,
+          'weight' => 0,
+          'delta' => $delta,
+          'cache' => BLOCK_NO_CACHE,
+        ))
+        ->execute();
     }
   }
 
   foreach (array_filter($form_state['values']['roles']) as $rid) {
-    db_query("INSERT INTO {block_role} (rid, module, delta) VALUES (%d, '%s', '%s')", $rid, $form_state['values']['module'], $delta);
+    db_insert('block_role')->fields(array(
+        'rid' => $rid,
+        'module' => $form_state['values']['module'],
+        'delta' => $delta,
+      ))
+      ->execute();
   }
 
   drupal_set_message(t('The block has been created.'));
@@ -335,8 +381,13 @@
  * Deletion of custom blocks.
  */
 function block_box_delete_submit($form, &$form_state) {
-  db_query('DELETE FROM {box} WHERE bid = %d', $form_state['values']['bid']);
-  db_query("DELETE FROM {block} WHERE module = 'block' AND delta = '%s'", $form_state['values']['bid']);
+  db_delete('box')
+    ->condition('bid', $form_state['values']['bid'])
+    ->execute();
+  db_delete('block')
+    ->condition('module', 'block')
+    ->condition('delta', $form_state['values']['bid'])
+    ->execute();
   drupal_set_message(t('The block %name has been removed.', array('%name' => $form_state['values']['info'])));
   cache_clear_all();
   $form_state['redirect'] = 'admin/build/block';
