Mysql
 sql >> Baza danych >  >> RDS >> Mysql

Pomijanie ostrzeżeń PDO

Jedyne, co widzę tutaj, to to, że mówisz PDO, aby rzucał wyjątki po próbowałeś otworzyć połączenie. To najprawdopodobniej za późno.

Zamiast tego możesz wysłać tę opcję bezpośrednio do konstruktora za pomocą czwartego 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 prawdopodobnie rozwiąże Twój problem.

Edytuj: Jeśli nazwa hosta została podana przez użytkownika, możesz ją zweryfikować przed wysłaniem do konstruktora PDO.

Na przykład używając:

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

To zadziała dla nazw domen, localhost i adresy IP.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. zaktualizuj dwie tabele jednocześnie

  2. Jak sprawdzić, czy tabela MySQL jest UTF-8 i ma storageEngine InnoDB?

  3. MYSQL LEWY JOIN z GROUP BY

  4. Zarządzaj MySQL za pomocą phpMyAdmin na Debianie 5 (Lenny)

  5. SQL Jak zamienić wartości Select Return?