Fix payment server: remove global conRide to prevent crashing non-ride DB queries
This commit is contained in:
@@ -53,14 +53,7 @@ try {
|
|||||||
];
|
];
|
||||||
$con = new PDO($dsn, $user, $pass, $options);
|
$con = new PDO($dsn, $user, $pass, $options);
|
||||||
|
|
||||||
// Ride DB Connection (for cross-db queries)
|
|
||||||
$rideDbname = getenv('DB_RIDE_NAME') ?: 'rideDB';
|
|
||||||
$rideDbHost = getenv('DB_RIDE_HOST') ?: (getenv('DB_HOST') ?: 'mysql');
|
|
||||||
$rideUser = getenv('DB_RIDE_USER') ?: 'root';
|
|
||||||
$ridePass = getenv('DB_RIDE_PASS') ?: getenv('MYSQL_ROOT_PASSWORD') ?: '';
|
|
||||||
|
|
||||||
$dsnRide = "mysql:host=$rideDbHost;dbname=$rideDbname;charset=utf8mb4";
|
|
||||||
$conRide = new PDO($dsnRide, $rideUser, $ridePass, $options);
|
|
||||||
|
|
||||||
// 5. JWT Authentication
|
// 5. JWT Authentication
|
||||||
include __DIR__ . "/functions.php";
|
include __DIR__ . "/functions.php";
|
||||||
|
|||||||
@@ -3,7 +3,21 @@ include "../../connect.php";
|
|||||||
$driverID = filterRequest("driverID");
|
$driverID = filterRequest("driverID");
|
||||||
|
|
||||||
try {
|
try {
|
||||||
// 1. Get ride stats using $conRide
|
// 1. Get ride stats using local $conRide
|
||||||
|
$rideStats = [];
|
||||||
|
try {
|
||||||
|
$rideDbname = getenv('DB_RIDE_NAME') ?: 'rideDB';
|
||||||
|
$rideDbHost = getenv('DB_RIDE_HOST') ?: (getenv('DB_HOST') ?: 'mysql');
|
||||||
|
$rideUser = getenv('DB_RIDE_USER') ?: 'root';
|
||||||
|
$ridePass = getenv('DB_RIDE_PASS') ?: getenv('MYSQL_ROOT_PASSWORD') ?: '';
|
||||||
|
$dsnRide = "mysql:host=$rideDbHost;dbname=$rideDbname;charset=utf8mb4";
|
||||||
|
$options = [
|
||||||
|
PDO::ATTR_EMULATE_PREPARES => false,
|
||||||
|
PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION,
|
||||||
|
PDO::ATTR_DEFAULT_FETCH_MODE => PDO::FETCH_ASSOC,
|
||||||
|
];
|
||||||
|
$conRide = new PDO($dsnRide, $rideUser, $ridePass, $options);
|
||||||
|
|
||||||
$sqlRide = "SELECT
|
$sqlRide = "SELECT
|
||||||
(SELECT COUNT(*) FROM `ride` WHERE LOWER(`status`) IN ('finished','completed') AND `created_at` BETWEEN CURRENT_DATE() + INTERVAL 7 HOUR AND CURRENT_DATE() + INTERVAL 10 HOUR AND `driver_id` = :driverID) AS morning_count,
|
(SELECT COUNT(*) FROM `ride` WHERE LOWER(`status`) IN ('finished','completed') AND `created_at` BETWEEN CURRENT_DATE() + INTERVAL 7 HOUR AND CURRENT_DATE() + INTERVAL 10 HOUR AND `driver_id` = :driverID) AS morning_count,
|
||||||
(SELECT COUNT(*) FROM `ride` WHERE LOWER(`status`) IN ('finished','completed') AND `created_at` BETWEEN CURRENT_DATE() + INTERVAL 15 HOUR AND CURRENT_DATE() + INTERVAL 18 HOUR AND `driver_id` = :driverID) AS afternoon_count,
|
(SELECT COUNT(*) FROM `ride` WHERE LOWER(`status`) IN ('finished','completed') AND `created_at` BETWEEN CURRENT_DATE() + INTERVAL 15 HOUR AND CURRENT_DATE() + INTERVAL 18 HOUR AND `driver_id` = :driverID) AS afternoon_count,
|
||||||
@@ -14,6 +28,10 @@ try {
|
|||||||
$stmtRide->bindValue(':driverID', $driverID);
|
$stmtRide->bindValue(':driverID', $driverID);
|
||||||
$stmtRide->execute();
|
$stmtRide->execute();
|
||||||
$rideStats = $stmtRide->fetch(PDO::FETCH_ASSOC) ?: [];
|
$rideStats = $stmtRide->fetch(PDO::FETCH_ASSOC) ?: [];
|
||||||
|
} catch (Exception $e) {
|
||||||
|
error_log('[getAllPayment] DB_RIDE Connection Error: ' . $e->getMessage());
|
||||||
|
$rideStats = ['morning_count' => 0, 'afternoon_count' => 0, 'total_amount_last_week' => 0];
|
||||||
|
}
|
||||||
|
|
||||||
// 2. Get payment stats using $con
|
// 2. Get payment stats using $con
|
||||||
$sqlPayment = "SELECT COALESCE(SUM(amount), 0) AS total_amount FROM payments WHERE isGiven = 'waiting' AND `driverID` = :driverID";
|
$sqlPayment = "SELECT COALESCE(SUM(amount), 0) AS total_amount FROM payments WHERE isGiven = 'waiting' AND `driverID` = :driverID";
|
||||||
|
|||||||
@@ -13,6 +13,18 @@ WHERE
|
|||||||
";
|
";
|
||||||
// كان المعرّف يُدمج في نص الاستعلام مباشرةً — حقن SQL.
|
// كان المعرّف يُدمج في نص الاستعلام مباشرةً — حقن SQL.
|
||||||
try {
|
try {
|
||||||
|
$rideDbname = getenv('DB_RIDE_NAME') ?: 'rideDB';
|
||||||
|
$rideDbHost = getenv('DB_RIDE_HOST') ?: (getenv('DB_HOST') ?: 'mysql');
|
||||||
|
$rideUser = getenv('DB_RIDE_USER') ?: 'root';
|
||||||
|
$ridePass = getenv('DB_RIDE_PASS') ?: getenv('MYSQL_ROOT_PASSWORD') ?: '';
|
||||||
|
$dsnRide = "mysql:host=$rideDbHost;dbname=$rideDbname;charset=utf8mb4";
|
||||||
|
$options = [
|
||||||
|
PDO::ATTR_EMULATE_PREPARES => false,
|
||||||
|
PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION,
|
||||||
|
PDO::ATTR_DEFAULT_FETCH_MODE => PDO::FETCH_ASSOC,
|
||||||
|
];
|
||||||
|
$conRide = new PDO($dsnRide, $rideUser, $ridePass, $options);
|
||||||
|
|
||||||
$stmt = $conRide->prepare($sql);
|
$stmt = $conRide->prepare($sql);
|
||||||
$stmt->bindValue(':driver_id', $driver_id);
|
$stmt->bindValue(':driver_id', $driver_id);
|
||||||
$stmt->execute();
|
$stmt->execute();
|
||||||
|
|||||||
Reference in New Issue
Block a user