I give you 2 methods using an example (similar in some ways):
Example 1:
$sql = 'SELECT count(*) FROM `TABLE`;'; for ($i = 1; $i <= 2; $i++) { try { $nb = $pdo->query($sql)->fetchColumn(); if (is_int($nb)) { // OK break; } } catch (PDOException $e) { //Oups if ($i == 1) { // First time ? retry $pdo = new PDO($dsn, $user, $password); } else { // Second time, KO $nb = "(unknown)"; echo 'PDO Connection failed: ' . $e->getMessage().'. '; } } }
Example 2:
// check try { $pdo->query('select 1;') //OK } catch (PDOException $e) { //Oups => reconnect $pdo = new PDO($dsn, $user, $password); } // Should be good $sql = 'SELECT count(*) FROM `TABLE`;'; $nb = $pdo->query($sql)->fetchColumn();
source share