--- carddav.php.orig 2013-01-27 15:37:45.285051841 +0100
+++ carddav.php 2013-01-27 15:39:55.035182800 +0100
@@ -352,7 +351,7 @@
$query = "
SELECT
- *
+ COUNT(*)
FROM
".get_table_name('carddav_server')."
WHERE
@@ -361,7 +360,7 @@
$result = $rcmail->db->query($query, $user_id);
- if ($rcmail->db->num_rows($result))
+ if ($rcmail->db->fetch_array($result)[0] > 0)
{
return true;
}
--- carddav_addressbook.php.orig 2013-01-27 15:37:26.504033155 +0100
+++ carddav_addressbook.php 2013-01-27 15:43:15.075379470 +0100
@@ -162,14 +162,11 @@
$result = $rcmail->db->limitquery($query, $limit['start'], $limit['length'], $rcmail->user->data['user_id'], $this->carddav_server_id);
}
- if ($rcmail->db->num_rows($result))
+ while ($contact = $rcmail->db->fetch_assoc($result))
{
- while ($contact = $rcmail->db->fetch_assoc($result))
- {
- $carddav_addressbook_contacts[$contact['vcard_id']] = $contact;
- }
+ $carddav_addressbook_contacts[$contact['vcard_id']] = $contact;
}
-
+
return $carddav_addressbook_contacts;
}
@@ -196,12 +193,7 @@
$result = $rcmail->db->query($query, $rcmail->user->data['user_id'], $carddav_contact_id);
- if ($rcmail->db->num_rows($result))
- {
- return $rcmail->db->fetch_assoc($result);
- }
-
- return false;
+ return $rcmail->db->fetch_assoc($result);
}
/**
@@ -215,7 +207,7 @@
$query = "
SELECT
- *
+ COUNT (*)
FROM
".get_table_name('carddav_contacts')."
WHERE
@@ -229,7 +221,7 @@
$result = $rcmail->db->query($query, $rcmail->user->data['user_id'], $this->carddav_server_id);
- return $rcmail->db->num_rows($result);
+ return $rcmail->db->fetch_array($result)[0];
}
/**
@@ -791,16 +783,12 @@
$result = $rcmail->db->query($query, $rcmail->user->data['user_id']);
- if ($rcmail->db->num_rows($result))
+ while ($contact = $rcmail->db->fetch_assoc($result))
{
- while ($contact = $rcmail->db->fetch_assoc($result))
- {
- $record['name'] = $contact['name'];
- $record['email'] = explode(', ', $contact['email']);
-
- $this->result->add($record);
- }
+ $record['name'] = $contact['name'];
+ $record['email'] = explode(', ', $contact['email']);
+ $this->result->add($record);
}
return $this->result;
And for people that like sqlite here is the sqlite.sql for the SQL directory:
PRAGMA foreign_keys = ON;
CREATE TABLE IF NOT EXISTS `carddav_server` (
`carddav_server_id` INTEGER PRIMARY KEY AUTOINCREMENT,
`user_id` int(10) NOT NULL REFERENCES `users` (`user_id`) ON DELETE CASCADE,
`url` varchar(255) NOT NULL,
`username` varchar(128) NOT NULL,
`password` varchar(128) NOT NULL,
`label` varchar(128) NOT NULL,
`read_only` tinyint(1) NOT NULL
);
CREATE TABLE IF NOT EXISTS `carddav_contacts` (
`carddav_contact_id` INTEGER PRIMARY KEY AUTOINCREMENT,
`carddav_server_id` int(10) NOT NULL REFERENCES `carddav_server` (`carddav_server_id`) ON DELETE CASCADE,
`user_id` int(10) NOT NULL,
`etag` varchar(64) NOT NULL,
`last_modified` varchar(128) NOT NULL,
`vcard_id` varchar(64) NOT NULL,
`vcard` longtext NOT NULL,
`words` text,
`firstname` varchar(128) DEFAULT NULL,
`surname` varchar(128) DEFAULT NULL,
`name` varchar(255) DEFAULT NULL,
`email` varchar(255) DEFAULT NULL,
UNIQUE (`carddav_server_id`,`user_id`,`vcard_id`)
);