Mysql
 sql >> Base de données >  >> RDS >> Mysql

Connexion à AWS RDS via PDO

Le code fonctionne maintenant, bien qu'assez frustrant, je n'ai jamais compris pourquoi cela ne fonctionnait pas en premier lieu ! Je soupçonne que cela a quelque chose à voir avec le fait de ne pas avoir correctement saisi le numéro de port - peut-être une faute de frappe quelque part qui a été corrigée "accidentellement" (plutôt que délibérément) lorsque j'essayais des choses. Ce code fonctionne maintenant (uniquement pour MySQL) :

      $dsn = null;
      $options = null;
      $this->host = SYSTEM_CONFIG["database"]["host"];
      $this->type = SYSTEM_CONFIG["database"]["type"];
      $this->name = SYSTEM_CONFIG["database"]["name"];
      $this->user = SYSTEM_CONFIG["database"]["user"];
      $this->pass = SYSTEM_CONFIG["database"]["pass"];
      $this->port = SYSTEM_CONFIG["database"]["port"];

      switch ($this->type) {
         case "SQLSRV":
            // Other untested code...
            break;
         default: 
            $dsn = "mysql:host={$this->host};port={$this->port};dbname={$this->name};charset=utf8";
            $options = [
               PDO::ATTR_PERSISTENT => false,
               PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION,
               PDO::ATTR_EMULATE_PREPARES => false,
               PDO::ATTR_STRINGIFY_FETCHES => false
            ];
      }
      try {
         $this->pdo = new PDO($dsn, $this->user, $this->pass, $options);
      } catch (PDOException $e) {
         $this->logError($e);
      } catch (Exception $e) {
         $this->logError($e);
      }