sql >> Databasteknik >  >> RDS >> Mysql

Undertrycker PDO-varningar

Det enda jag kan se här är att du säger åt PDO att kasta undantag efter du har försökt öppna anslutningen. Det är troligen för sent.

Vad du kan göra istället är att skicka det alternativet till konstruktören direkt med den fjärde parametern:

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) {
...

Det kommer förmodligen att lösa ditt problem.

Redigera: Om värdnamnet tillhandahålls av användaren kan du validera det innan du skickar det till PDO-konstruktorn.

Använd till exempel:

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

Det kommer att fungera för domännamn, localhost och ip-adresser.




  1. konfigurationen av mysql-serverinstallationen misslyckades ELLER kan inte starta tjänsten

  2. Doktrin - Hur skriver man ut den riktiga sql-filen, inte bara det förberedda uttalandet?

  3. Vi introducerar MariaDB Platform X5:databasen för alla arbetsbelastningar, nu i vilken skala som helst

  4. 2 funktioner som returnerar månaden från ett datum i Oracle