diff options
author | Thomas Tanghus <thomas@tanghus.net> | 2011-12-31 01:34:22 +0100 |
---|---|---|
committer | Thomas Tanghus <thomas@tanghus.net> | 2011-12-31 01:34:22 +0100 |
commit | 1b146b85d2b645dc4ae4f16d9757ad4bd939c0e2 (patch) | |
tree | dcafe27ca4df83aaefd5143ed76bff838b00bbed /apps/contacts/lib | |
parent | 97471b5c2a079be34aeff099019f219135b9cb2c (diff) | |
download | nextcloud-server-1b146b85d2b645dc4ae4f16d9757ad4bd939c0e2.tar.gz nextcloud-server-1b146b85d2b645dc4ae4f16d9757ad4bd939c0e2.zip |
Removed redundant DB queries.
Diffstat (limited to 'apps/contacts/lib')
-rw-r--r-- | apps/contacts/lib/addressbook.php | 20 | ||||
-rw-r--r-- | apps/contacts/lib/vcard.php | 3 |
2 files changed, 16 insertions, 7 deletions
diff --git a/apps/contacts/lib/addressbook.php b/apps/contacts/lib/addressbook.php index b3c981a541e..78792f5f948 100644 --- a/apps/contacts/lib/addressbook.php +++ b/apps/contacts/lib/addressbook.php @@ -189,9 +189,21 @@ class OC_Contacts_Addressbook{ public static function active($uid){ $active = self::activeIds($uid); $addressbooks = array(); - /* FIXME: Is there a way to prepare a statement 'WHERE id IN ([range])'? - * See OC_Contacts_VCard:all. - */ + $ids_sql = join(',', array_fill(0, count($active), '?')); + $prep = 'SELECT * FROM *PREFIX*contacts_addressbooks WHERE id IN ('.$ids_sql.') ORDER BY displayname'; + try { + $stmt = OC_DB::prepare( $prep ); + $result = $stmt->execute($active); + } catch(Exception $e) { + OC_Log::write('contacts','OC_Contacts_Addressbook:active:, exception: '.$e->getMessage(),OC_Log::DEBUG); + OC_Log::write('contacts','OC_Contacts_Addressbook:active, ids: '.join(',', $active),OC_Log::DEBUG); + OC_Log::write('contacts','OC_Contacts_Addressbook::active, SQL:'.$prep,OC_Log::DEBUG); + } + + while( $row = $result->fetchRow()){ + $addressbooks[] = $row; + } + /* foreach( $active as $aid ){ $stmt = OC_DB::prepare( 'SELECT * FROM *PREFIX*contacts_addressbooks WHERE id = ? ORDER BY displayname' ); $result = $stmt->execute(array($aid,)); @@ -199,7 +211,7 @@ class OC_Contacts_Addressbook{ while( $row = $result->fetchRow()){ $addressbooks[] = $row; } - } + }*/ return $addressbooks; } diff --git a/apps/contacts/lib/vcard.php b/apps/contacts/lib/vcard.php index 81519b3d051..beb291b481e 100644 --- a/apps/contacts/lib/vcard.php +++ b/apps/contacts/lib/vcard.php @@ -47,9 +47,6 @@ class OC_Contacts_VCard{ * ['carddata'] */ public static function all($id){ - //$stmt = OC_DB::prepare( 'SELECT * FROM *PREFIX*contacts_cards WHERE addressbookid = ? ORDER BY fullname' ); - //$result = $stmt->execute(array($id)); - if(is_array($id)) { $id_sql = join(',', array_fill(0, count($id), '?')); $prep = 'SELECT * FROM *PREFIX*contacts_cards WHERE addressbookid IN ('.$id_sql.') ORDER BY fullname'; |