bd_pdo_rest.php 1.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263
  1. <?php
  2. require_once "/usr/share/nginx/html/paad/vendor/autoload.php";
  3. $dotenv = Dotenv\Dotenv::createImmutable(__DIR__);
  4. $dotenv->load();
  5. use \SeinopSys\PostgresDb;
  6. # Connect to the database
  7. try {
  8. // Postgres
  9. $pdo = new PDO("pgsql:host=" . $_ENV['DB_HOST'] . ";dbname=" . $_ENV['DB_NAME'], $_ENV['DB_USER'], $_ENV['DB_PASS']);
  10. $pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
  11. $db = new PostgresDb();
  12. $db->setConnection($pdo);
  13. } catch (PDOException $e) {
  14. echo "Error: " . $e->getMessage();
  15. }
  16. // check recursivelly if the array has only empty strings
  17. function is_response_empty($array)
  18. {
  19. foreach ($array as $value) {
  20. if (is_array($value)) {
  21. if (!is_response_empty($value)) {
  22. return false;
  23. }
  24. } else {
  25. if (!empty($value)) {
  26. return false;
  27. }
  28. }
  29. }
  30. return true;
  31. }
  32. // SQL function
  33. function query(string $sql, array $params = null, bool $single = true)
  34. {
  35. global $pdo;
  36. try {
  37. $stmt = $pdo->prepare($sql);
  38. $stmt->execute($params);
  39. $response = $single ? $stmt->fetch(PDO::FETCH_ASSOC) : $stmt->fetchAll(PDO::FETCH_ASSOC);
  40. return $response;
  41. } catch (PDOException $e) {
  42. echo "Error: " . $e->getMessage();
  43. return false;
  44. } finally {
  45. $stmt->closeCursor();
  46. $stmt = null;
  47. }
  48. }
  49. function queryAll(string $sql, array $params = null)
  50. {
  51. return query($sql, $params, false);
  52. }
  53. function toSQLArray(array $array): string
  54. {
  55. return sprintf("{%s}", implode(", ", $array));
  56. }