Hello,
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 myself.
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(
'mysql:host=localhost;dbname=test',
'username',
'password'
);
$pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
$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?
Thanks,
Matt
--
PHP Database Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php