Mysql
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Mysql

Ngăn chặn cảnh báo PDO

Điều duy nhất tôi có thể thấy ở đây, là bạn yêu cầu PDO ném ngoại lệ sau bạn đã cố gắng mở kết nối. Điều đó rất có thể là quá muộn.

Thay vào đó, những gì bạn có thể làm là gửi trực tiếp tùy chọn đó đến hàm tạo bằng cách sử dụng tham số thứ 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) {
...

Điều đó có thể sẽ giải quyết được vấn đề của bạn.

Chỉnh sửa: Nếu tên máy chủ do người dùng cung cấp, bạn có thể xác thực nó trước khi gửi đến phương thức khởi tạo PDO.

Ví dụ:sử dụng:

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

Điều đó sẽ hoạt động đối với tên miền, localhost và địa chỉ 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. Làm cách nào để nhóm dữ liệu mảng được trả về bởi truy vấn nối trái trong php?

  2. Buộc ngủ đông để tạo bảng sau khi thả và tạo lại cơ sở dữ liệu

  3. Làm cách nào để tạo mô-đun Sinh nhật sắp tới trong Rails?

  4. cách thêm ngày và giờ với tên tệp sao lưu bằng cách sử dụng mysqldump từ dấu nhắc lệnh và xác định đường dẫn của tệp sao lưu

  5. Cách thêm thời gian vào giá trị ngày giờ trong MySQL