Mysql
 sql >> Teknologi Basis Data >  >> RDS >> Mysql

Menekan Peringatan PDO

Satu-satunya hal yang dapat saya lihat di sini, adalah Anda memberi tahu PDO untuk membuang pengecualian setelah Anda telah mencoba membuka koneksi. Itu kemungkinan besar sudah terlambat.

Apa yang dapat Anda lakukan sebagai gantinya, adalah mengirim opsi itu ke konstruktor secara langsung menggunakan parameter ke-4:

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

Itu mungkin akan menyelesaikan masalah Anda.

Sunting: Jika nama host diberikan oleh pengguna, Anda dapat memvalidasinya sebelum mengirimkannya ke konstruktor PDO.

Misalnya menggunakan:

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

Itu akan berfungsi untuk nama domain, localhost dan alamat 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. Bagaimana cara mengurangi 30 hari dari datetime saat ini di mysql?

  2. Hashing kata sandi menggunakan crypt tidak berfungsi saat login, ini menampilkan pass yang salah

  3. mendapat pilihan yang melakukan 10 kueri dalam doktrin (Symfony)

  4. MYSQL Buang hanya baris tertentu

  5. Bagaimana cara mengubah BLOB menjadi VARCHAR di MySQL?