Index: phplistbackend/phplistbackend.module
===================================================================
--- phplistbackend/phplistbackend.module	(revision 21)
+++ phplistbackend/phplistbackend.module	(working copy)
@@ -256,8 +256,9 @@
 }
 
 /**
- * Saves a message to the db, if an ID is supplied, it will update the messag with that ID
- */
+ * Saves a message to the db, if an ID is supplied, it will update the message with that ID
+	TOTO: This is updated for D7 through update.
+ */ 
 function phplistbackend_message_save($message) {
   // Grab the phplist prefix array
   $prefix = _phplist_dbconn();
@@ -271,82 +272,49 @@
   // Check if the id was set
   if (!isset($message['id'])) {
     // No ID was given, this message is new
-    // assuming a lot here, should be a better way to handle this
-    $query = "INSERT INTO {%s} (subject, fromfield, message, textmessage, footer, entered, embargo, repeatuntil, status, userselection, htmlformatted, sendformat, template, sendstart, rsstemplate, owner) VALUES ('%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', %d, '%s', %d, '%s', '%s', %d)";
-    $placeholder = array();
-    $placeholder[] = $prefix['prefix'] . 'message';
-    $placeholder[] = $message['subject'];
-    $placeholder[] = $message['fromfield'];
-    $placeholder[] = $message['message'];
-    $placeholder[] = $message['textmessage'];
-    $placeholder[] = $message['footer'];
-    $placeholder[] = date('Y-m-d H:i:s');
-    $placeholder[] = date('Y-m-d H:i:s');
-    $placeholder[] = date('Y-m-d H:i:s');
-    $placeholder[] = $message['status'];
-    $placeholder[] = $message['userselection'];
-    $placeholder[] = $message['htmlformatted'];
-    $placeholder[] = $message['sendformat'];
-    $placeholder[] = $message['template'];
-    $placeholder[] = $message['sendstart'];
-    $placeholder[] = '';
-    $placeholder[] = $message['owner'];
     // Execute insert-query
-    // TODO Please convert this statement to the D7 database API syntax.
-    /* db_query($query, $placeholder) */
-    $result = NULL;
-    // Get the id of the message we just inserted
-    $msgid = db_last_insert_id($prefix['prefix'] . 'message', 'id');
+    $msgid = db_insert($prefix['prefix'] . 'message')
+    	->fields(array(
+    	'subject'		=>	$message['subject'],
+    	'fromfield' 	=>	$message['fromfield'],
+    	'message'		=> $message['message'],
+    	'textmessage'	=> $message['textmessage'],
+    	'footer'		=> $message['footer'],
+    	'entered'		=> date('Y-m-d H:i:s'),
+    	'embargo'		=> date('Y-m-d H:i:s'),
+    	'repeatuntil' 	=> date('Y-m-d H:i:s'),
+    	'status' 		=> $message['status'],
+    	'userselection' => $message['userselection'],
+    	'htmlformatted' => $message['htmlformatted'],
+    	'sendformat'	=> $message['sendformat'],
+    	'template' 		=> $message['template'],
+    	'sendstart'		=> $message['sendstart'],
+    	'rsstemplate'	=> '',
+    	'owner' 		=> $message['owner'],
+    	))
+    	->execute();
+	// $msgid contains new row id, or NULL on fail
     // Check if it was successful and if there are any lists to add
-    if ($result && count($message['lists'])) {
-      // build query for insert
-      $query = "INSERT INTO {%s} (messageid, listid, entered) VALUES ";
-      // build placeholder array
-      $placeholder = array();
-      $placeholder[] = $prefix['prefix'] . 'listmessage';
+    if ($msgid && count($message['lists'])) {
       // add values for each list
-      $queryextend = array();
+      // Code modeled from http://drupal.org/node/310079
+      $values = array();
       foreach ($message['lists'] as $list) {
-        // add 3 placeholder and 3 values for each list
-        if ($list) {
-          $queryextend[] = "(%d, %d, '%s')";
-          $placeholder[] = $msgid;
-          $placeholder[] = $list;
-          $placeholder[] = date('Y-m-d H:i:s');
-        }
+      	if($list) $values[] = array($msgid,$list,date('Y-m-d H:i:s'));
       }
-      // add the extra placeholders to the main query, split by a comma and a space
-      $query .= implode(', ', $queryextend);
       // run query
-      // TODO Please convert this statement to the D7 database API syntax.
-      $result = db_query($query, $placeholder);
+      $query = db_insert($prefix['prefix'] . 'listmessage')
+      	->fields(array('messageid', 'listid', 'entered'));
+      foreach ($values as $record) {
+		$query->values($record);
+	  }
+      $query->execute();
     }
+    db_set_active('default');
   }
   else {
     // ID was given, using update instead
-    $query = "UPDATE {%s} SET subject = '%s', fromfield = '%s', message = '%s', textmessage = '%s', footer = '%s', entered = '%s', embargo = '%s', repeatuntil = '%s', status = '%s', userselection = '%s', htmlformatted = %d, sendformat = '%s', template = %d, sendstart = '%s', rsstemplate = '%s', owner = %d WHERE id = %d";
-    $placeholder = array();
-    $placeholder[] = $prefix['prefix'] . 'message';
-    $placeholder[] = $message['subject'];
-    $placeholder[] = $message['fromfield'];
-    $placeholder[] = $message['message'];
-    $placeholder[] = $message['textmessage'];
-    $placeholder[] = $message['footer'];
-    $placeholder[] = date('Y-m-d H:i:s');
-    $placeholder[] = date('Y-m-d H:i:s');
-    $placeholder[] = date('Y-m-d H:i:s');
-    $placeholder[] = $message['status'];
-    $placeholder[] = $message['userselection'];
-    $placeholder[] = $message['htmlformatted'];
-    $placeholder[] = $message['sendformat'];
-    $placeholder[] = $message['template'];
-    $placeholder[] = $message['sendstart'];
-    $placeholder[] = '';
-    $placeholder[] = $message['owner'];
-    $placeholder[] = $message['id'];
-    // TODO Please convert this statement to the D7 database API syntax.
-    /* db_query($query, $placeholder) */
-    $result = NULL;
+    // update syntax at http://drupal.org/node/310080
     $msgid = $message['id'];
     if ($result && count($message['lists'])) {
       // TODO Please convert this statement to the D7 database API syntax.
