Here is a snippet of my code:
$qry = '     INSERT INTO non-existant-table (id, score)      SELECT id, 40      FROM another-non-existant-table     WHERE description LIKE "%:search_string%"     AND available = "yes"     ON DUPLICATE KEY UPDATE score = score + 40 '; $sth = $this->pdo->prepare($qry); $sth->execute($data);  print_r($this->pdo->errorInfo());   This should give me an error because the tables don't even exist. All I get however is this:
Array ( [0] => 00000 )
How can I get a better description of the error so I can debug the issue?
Try this instead:
print_r($sth->errorInfo());   Add this before your prepare:
$this->pdo->setAttribute( PDO::ATTR_ERRMODE, PDO::ERRMODE_WARNING );   This will change the PDO error reporting type and cause it to emit a warning whenever there is a PDO error. It should help you track it down, although your errorInfo should have bet set.
Old thread, but maybe my answer will help someone. I resolved by executing the query first, then setting an errors variable, then checking if that errors variable array is empty. see simplified example:
$field1 = 'foo'; $field2 = 'bar';  $insert_QUERY = $db->prepare("INSERT INTO table bogus(field1, field2) VALUES (:field1, :field2)"); $insert_QUERY->bindParam(':field1', $field1); $insert_QUERY->bindParam(':field2', $field2);  $insert_QUERY->execute();  $databaseErrors = $insert_QUERY->errorInfo();  if( !empty($databaseErrors) ){       $errorInfo = print_r($databaseErrors, true); # true flag returns val rather than print     $errorLogMsg = "error info: $errorInfo"; # do what you wish with this var, write to log file etc...           /*   $errorLogMsg will return something like:   error info:    Array(   [0] => 42000   [1] => 1064   [2] => You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'table bogus(field1, field2) VALUES                                                  ('bar', NULL)' at line 1  ) */ } else {     # no SQL errors. } 
                        If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With