On 08/21/2012 01:08 AM, David Robley wrote:
Matt Pelmear wrote:


I'm trying to detect data truncation on insert to MySQL using PDO.

As far as I can tell, this gets reported at least in some cases (ex:
http://drupal.org/node/1528628), but I have been unable to see this

The test table I'm using has a column that is VARCHAR(5):

mysql>  describe test;
| Field | Type             | Null | Key | Default | Extra |
| id    | int(10) unsigned | YES  |     | NULL    |       |
| data  | varchar(5)       | YES  |     | NULL    |       |
2 rows in set (0.00 sec)

My test script inserts a ten character string into the 5 character column:

==== PHP TEST CODE ====

$pdo = new PDO(


$retval = $pdo->query( 'INSERT INTO `test` (data) VALUES ("1234567890")'

print_r( $retval );

==== END TEST CODE ====

This results in a new row in the `test` table, truncated after the 5th
character as expected, but the truncation is not reported. (running in
php 5.3.2 and 5.3.4)
Running the same query directly in the mysql command line shows a
warning as expected.

Am I missing something simple here?

Caveat: I don't use PDO but maybe the PDO::ERRMODE_WARNING attribute may do
what you want?


Interesting idea. I gave it a try, but got the same result!
I think PDO::ERRMODE_WARNING tells PDO to give PHP warnings versus throw exceptions when there are problems (if I'm understanding it properly).


PHP Database Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php

Reply via email to