Use \PDO::fetchAll() instead of PreparedStatement::fetchColumns()
[GitHub/WoltLab/WCF.git] / wcfsetup / install / files / lib / system / cronjob / AttachmentCleanUpCronjob.class.php
1 <?php
2 namespace wcf\system\cronjob;
3 use wcf\data\attachment\AttachmentEditor;
4 use wcf\data\cronjob\Cronjob;
5 use wcf\system\WCF;
6
7 /**
8 * Deletes orphaned attachments.
9 *
10 * @author Marcel Werk
11 * @copyright 2001-2015 WoltLab GmbH
12 * @license GNU Lesser General Public License <http://opensource.org/licenses/lgpl-license.php>
13 * @package com.woltlab.wcf
14 * @subpackage system.cronjob
15 * @category Community Framework
16 */
17 class AttachmentCleanUpCronjob extends AbstractCronjob {
18 /**
19 * @see \wcf\system\cronjob\ICronjob::execute()
20 */
21 public function execute(Cronjob $cronjob) {
22 parent::execute($cronjob);
23
24 // delete orphaned attachments
25 $sql = "SELECT attachmentID
26 FROM wcf".WCF_N."_attachment
27 WHERE objectID = ?
28 AND uploadTime < ?";
29 $statement = WCF::getDB()->prepareStatement($sql);
30 $statement->execute(array(
31 0,
32 (TIME_NOW - 86400)
33 ));
34 $attachmentIDs = $statement->fetchAll(\PDO::FETCH_COLUMN);
35
36 if (!empty($attachmentIDs)) {
37 AttachmentEditor::deleteAll($attachmentIDs);
38 }
39 }
40 }