bd_pdo_rest.php 1.7 KB

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