File size: 2,642 Bytes
0dff816 |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 |
<?php
// classes/Transaction.php
class Transaction {
private $conn;
private $table_name = "transactions";
public $id;
public $user_id;
public $type;
public $amount;
public $description;
public $status;
public $reference;
public $created_at;
public function __construct($db) {
$this->conn = $db;
}
// Create a new transaction
public function create() {
$query = "INSERT INTO " . $this->table_name . "
SET user_id=:user_id, type=:type, amount=:amount,
description=:description, status=:status, reference=:reference";
$stmt = $this->conn->prepare($query);
// Sanitize inputs
$this->user_id = htmlspecialchars(strip_tags($this->user_id));
$this->type = htmlspecialchars(strip_tags($this->type));
$this->amount = htmlspecialchars(strip_tags($this->amount));
$this->description = htmlspecialchars(strip_tags($this->description));
$this->status = htmlspecialchars(strip_tags($this->status));
$this->reference = htmlspecialchars(strip_tags($this->reference));
// Bind values
$stmt->bindParam(":user_id", $this->user_id);
$stmt->bindParam(":type", $this->type);
$stmt->bindParam(":amount", $this->amount);
$stmt->bindParam(":description", $this->description);
$stmt->bindParam(":status", $this->status);
$stmt->bindParam(":reference", $this->reference);
if($stmt->execute()) {
return true;
}
return false;
}
// Get transactions by user ID
public function getTransactionsByUserId($user_id, $limit = 10) {
$query = "SELECT * FROM " . $this->table_name . "
WHERE user_id = ?
ORDER BY created_at DESC
LIMIT ?";
$stmt = $this->conn->prepare($query);
$stmt->bindParam(1, $user_id);
$stmt->bindParam(2, $limit, PDO::PARAM_INT);
$stmt->execute();
return $stmt;
}
// Get transactions by type
public function getTransactionsByType($user_id, $type, $limit = 10) {
$query = "SELECT * FROM " . $this->table_name . "
WHERE user_id = ? AND type = ?
ORDER BY created_at DESC
LIMIT ?";
$stmt = $this->conn->prepare($query);
$stmt->bindParam(1, $user_id);
$stmt->bindParam(2, $type);
$stmt->bindParam(3, $limit, PDO::PARAM_INT);
$stmt->execute();
return $stmt;
}
}
?> |