Mysql
 sql >> база данни >  >> RDS >> Mysql

Потискане на предупрежденията за PDO

Единственото нещо, което виждам тук, е, че казвате на PDO да хвърля изключения след сте се опитали да отворите връзката. Най-вероятно е твърде късно.

Това, което бихте могли да направите вместо това, е да изпратите тази опция директно на конструктора, като използвате 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) {
...

Това вероятно ще реши проблема ви.

Редактиране: Ако името на хоста е предоставено от потребителя, можете да го потвърдите, преди да го изпратите до конструктора на PDO.

Например с помощта на:

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

Това ще работи за имена на домейни, localhost и 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. Свързване на MySQL към Visual Studio C#

  2. Как мога да сумирам колони в множество таблици в MySQL?

  3. MYSQL изберете присъединяване към множество таблици и SUM

  4. MySQL:вмъкване на стойности от друга таблица в една колона

  5. Mysql Как се създава клъстериран индекс?