public function depositCredits($targetAccountID, $credits, $donationAmount = null) { $sql = "SELECT COUNT(account_id) AS accountExists FROM {$this->loginDatabase}.login WHERE account_id = ?"; $sth = $this->connection->getStatement($sql); if (!$sth->execute(array($targetAccountID)) || !$sth->fetch()->accountExists) { return false; // Account doesn't exist. } $creditsTable = Flux::config('FluxTables.CreditsTable'); if (!$this->hasCreditsRecord($targetAccountID)) { $fields = 'account_id, key, index, value'; $values = '?, ?, ?, ?'; /*if (!is_null($donationAmount)) { $fields .= ', last_donation_date, last_donation_amount'; $values .= ', NOW(), ?'; }*/ $sql = "INSERT INTO {$this->charMapDatabase}.`acc_reg_num_db` ($fields) VALUES ($values)ON DUPLICATE KEY UPDATE `value`=`value`+?"; $sth = $this->connection->getStatement($sql); $vals = array($targetAccountID, '#CASHPOINTS', 0, $credits); /*if (!is_null($donationAmount)) { $vals[] = $donationAmount; }*/ return $sth->execute($vals); } else { $vals = array(); $sql = "UPDATE {$this->charMapDatabase}.`acc_reg_num_db` SET value = value + ? "; /*if (!is_null($donationAmount)) { $sql .= ", last_donation_date = NOW(), last_donation_amount = ? "; }*/ $vals[] = $credits; /*if (!is_null($donationAmount)) { $vals[] = $donationAmount; }*/ $vals[] = $targetAccountID; $sql .= "WHERE account_id = ? and `key` = '#CASHPOINTS'"; $sth = $this->connection->getStatement($sql); return $sth->execute($vals); } }