sql >> Databáze >  >> RDS >> Mysql

Potlačení varování PDO

Jediná věc, kterou zde vidím, je, že říkáte PDO, aby vyvolalo výjimky po pokusili jste se otevřít připojení. To je s největší pravděpodobností příliš pozdě.

Co byste místo toho mohli udělat, je poslat tuto možnost konstruktoru přímo pomocí 4. parametru:

try {
  $opts = array(PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION);
  $db = new PDO($dbms . ':host=' . $dbhost . ';port=' . $dbport . ';dbname=' . $dbname,
                $dbuser, $dbpasswd, $opts);
} catch(PDOException $e) {
...

To pravděpodobně vyřeší váš problém.

Upravit: Pokud název hostitele poskytuje uživatel, můžete jej před odesláním do konstruktoru PDO ověřit.

Například pomocí:

if (filter_var(gethostbyname($user_provided_host_name), FILTER_VALIDATE_IP)) {
  // valid hostname / ip address
}

To bude fungovat pro názvy domén, localhost a IP adresy.




  1. jak zrušit databázi

  2. První pohled na nový odhad kardinality serveru SQL Server

  3. Instalace drahokamu mysql2 pro Ruby on Rails s Mac OSX 10.6

  4. Připojení k MySQL pomocí Pythonu