summaryrefslogtreecommitdiff
path: root/includes/file.inc
diff options
context:
space:
mode:
Diffstat (limited to 'includes/file.inc')
-rw-r--r--includes/file.inc9
1 files changed, 7 insertions, 2 deletions
diff --git a/includes/file.inc b/includes/file.inc
index 3b7e03019..b7a096f98 100644
--- a/includes/file.inc
+++ b/includes/file.inc
@@ -767,10 +767,15 @@ function file_unmanaged_delete($path) {
* An integer containing the number of bytes used.
*/
function file_space_used($uid = NULL, $status = FILE_STATUS_PERMANENT) {
+ $query = db_select('files', 'f');
+ // Use separate placeholders for the status to avoid a bug in some versions
+ // of PHP. @see http://drupal.org/node/352956
+ $query->where('f.status & :status1 = :status2', array(':status1' => $status, ':status2' => $status));
+ $query->addExpression('SUM(f.filesize)', 'filesize');
if (!is_null($uid)) {
- return db_query('SELECT SUM(filesize) FROM {files} WHERE uid = :uid AND status = :status', array(':uid' => $uid, ':status' => $status))->fetchField();
+ $query->condition('f.uid', $uid);
}
- return db_query('SELECT SUM(filesize) FROM {files} WHERE status = :status', array(':status' => $status))->fetchField();
+ return $query->execute()->fetchField();
}
/**