pdo-wrapper
pdo-wrapper copied to clipboard
search function example code
` /**
-
Search records with optional date range and additional parameters
-
@param string $table table name
-
@param array|null $date_range date range array with [start_date, end_date] keys (optional)
-
@param array $params additional parameters
-
@return array returns an array of records */ public function search($table, $date_range = null, $params = []) { $sql = "SELECT * FROM $table"; $queryParams = []; $dateConditionAdded = false;
if ($date_range !== null && is_array($date_range) && count($date_range) >= 2) { $start_date = $date_range[0]; $end_date = $date_range[1];
if ($start_date !== null && $end_date !== null) { $sql .= " WHERE date >= :start_date AND date <= :end_date"; $queryParams[':start_date'] = $start_date; $queryParams[':end_date'] = $end_date; $dateConditionAdded = true; }}
foreach ($params as $key => $value) { if ($value !== null) { if (!$dateConditionAdded) { if (empty($queryParams)) { $sql .= " WHERE $key = :$key"; } else { $sql .= " AND $key = :$key"; } } else { $sql .= " AND $key = :$key"; } $queryParams[":$key"] = $value; } }
$stmt = $this->db->prepare($sql); $stmt->execute($queryParams); return $stmt->fetchAll(PDO::FETCH_ASSOC); } `
Errors may exist, but it serves my purpose. I would like to suggest adding the search function to the class. Thank you