Index: modules/node.module
===================================================================
RCS file: /cvs/drupal/drupal/modules/node.module,v
retrieving revision 1.526
diff -u -p -r1.526 node.module
--- modules/node.module	30 Aug 2005 15:22:29 -0000	1.526
+++ modules/node.module	30 Aug 2005 18:06:09 -0000
@@ -442,53 +442,28 @@ function node_save($node) {
                      'title' => $node->title, 'body' => $node->body,
                      'teaser' => $node->teaser, 'log' => $node->log, 'timestamp' => $node->changed,
                      'uid' => $user->uid, 'format' => $node->format);
-  $revisions_table_types = array('nid' => '%d', 'vid' => '%d',
-                     'title' => "'%s'", 'body' => "'%s'",
-                     'teaser' => "'%s'", 'log' => "'%s'", 'timestamp' => '%d',
-                     'uid' => '%d', 'format' => '%d');
   $node_table_values = array('nid' => $node->nid, 'vid' => $node->vid,
                     'title' => $node->title, 'type' => $node->type, 'uid' => $node->uid,
                     'status' => $node->status, 'created' => $node->created,
                     'changed' => $node->changed, 'comment' => $node->comment,
                     'promote' => $node->promote, 'moderate' => $node->moderate,
                     'sticky' => $node->sticky);
-  $node_table_types = array('nid' => '%d', 'vid' => '%d',
-                    'title' => "'%s'", 'type' => "'%s'", 'uid' => '%d',
-                    'status' => '%d', 'created' => '%d',
-                    'changed' => '%d', 'comment' => '%d',
-                    'promote' => '%d', 'moderate' => '%d',
-                    'sticky' => '%d');
 
-  //Generate the node table query and the
-  //the node_revisions table query
+  // Insert the node into the database:
   if ($node->is_new) {
-    $node_query = 'INSERT INTO {node} ('. implode(', ', array_keys($node_table_types)) .') VALUES ('. implode(', ', $node_table_types) .')';
-    $revisions_query = 'INSERT INTO {node_revisions} ('. implode(', ', array_keys($revisions_table_types)) .') VALUES ('. implode(', ', $revisions_table_types) .')';
+    db_query('INSERT INTO {node} %a', $node_table_values);
+    db_query('INSERT INTO {node_revisions} %a', $revisions_table_values);
   }
   else {
-    $arr = array();
-    foreach ($node_table_types as $key => $value) {
-      $arr[] = $key .' = '. $value;
-    }
-    $node_table_values[] = $node->nid;
-    $node_query = 'UPDATE {node} SET '. implode(', ', $arr) .' WHERE nid = %d';
+    db_query('UPDATE {node} SET %a WHERE nid = %d', $node_table_values, $node->nid);
     if ($node->revision) {
-      $revisions_query = 'INSERT INTO {node_revisions} ('. implode(', ', array_keys($revisions_table_types)) .') VALUES ('. implode(', ', $revisions_table_types) .')';
+      db_query('INSERT INTO {node_revisions} %a', $revisions_table_values);
     }
     else {
-      $arr = array();
-      foreach ($revisions_table_types as $key => $value) {
-        $arr[] = $key .' = '. $value;
-      }
-      $revisions_table_values[] = $node->vid;
-      $revisions_query = 'UPDATE {node_revisions} SET '. implode(', ', $arr) .' WHERE vid = %d';
+      db_query('UPDATE {node_revisions} SET %a WHERE vid = %d', $revisions_table_values, $node->vid);
     }
   }
 
-  // Insert the node into the database:
-  db_query($node_query, $node_table_values);
-  db_query($revisions_query, $revisions_table_values);
-
   // Call the node specific callback (if any):
   if ($node->is_new) {
     node_invoke($node, 'insert');
@@ -502,7 +477,6 @@ function node_save($node) {
   // Clear the cache so an anonymous poster can see the node being added or updated.
   cache_clear_all();
 
-  // Return the node ID:
   return $node;
 }
 
