sql >> Databasteknik >  >> RDS >> Mysql

Ansluter till AWS RDS via PDO

Har fått koden att fungera nu, även om jag ganska frustrerande nog aldrig kom till botten med varför den inte fungerade i första hand! Jag misstänker att det var något att göra med att inte plocka upp portnumret ordentligt - kanske ett stavfel någonstans som "av misstag" korrigerades (snarare än medvetet) när jag testade saker. Denna kod fungerar nu (bara för 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);
      }



  1. SQL-lagrade procedurer slutförs inte när de anropas från Python

  2. Finns det något sätt i SQL (MySQL) att göra en round robin ORDER BY på ett visst fält?

  3. Flera frågor VS lagrad procedur

  4. Fluent NHibernate 3 och Oracle.DataAccess