sql >> Database teknologi >  >> RDS >> Mysql

Undertrykkelse af BOB-advarsler

Det eneste jeg kan se her, er at du fortæller PDO at smide undtagelser efter du har forsøgt at åbne forbindelsen. Det er højst sandsynligt for sent.

Hvad du kunne gøre i stedet, er at sende denne mulighed til konstruktøren direkte ved at bruge den 4. parameter:

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 vil sandsynligvis løse dit problem.

Rediger: Hvis værtsnavnet er angivet af brugeren, kan du validere det, før du sender det til PDO-konstruktøren.

For eksempel ved at bruge:

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

Det vil fungere for domænenavne, localhost og ip-adresser.




  1. Slet automatisk krydsdata sammen med DELETE af en post?

  2. Mysql-løsning til vinduesfunktioner

  3. Sådan rydder du alle cachelagrede elementer i Oracle

  4. Sådan viser du tabeller, der er berørt af kaskadesletning