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');
$cashesTable = Flux::config('FluxTables.CashTable');
if (!$this->hasCreditsRecord($targetAccountID)) {
$fields = 'account_id, balance';
$values = '?, ?';
if (!is_null($donationAmount)) {
$fields .= ', last_donation_date, last_donation_amount';
$values .= ', NOW(), ?';
}
$sql = "INSERT INTO {$this->loginDatabase}.$creditsTable ($fields) VALUES ($values)";
$sth = $this->connection->getStatement($sql);
$vals = array($targetAccountID, $credits);
if (!is_null($donationAmount)) {
$vals[] = $donationAmount;
}
return $sth->execute($vals);
}
else {
$vals = array();
$sql = "UPDATE {$this->loginDatabase}.$cashesTable SET value = value + ? ";
$vals[] = $credits;
if (!is_null($donationAmount)) {
$vals[] = $donationAmount;
}
$vals[] = $targetAccountID;
$sql .= "WHERE account_id = ?";
$sth = $this->connection->getStatement($sql);
return $sth->execute($vals);
}
}
FluxCP cannot edit table acc_reg_num? Donation to cp_credits works normally.