Giles Bennett Giles Bennett - 1 year ago 64
MySQL Question

PDO integer converting integer on INSERT statement

I've got a PDO prepared statement which is trying to insert four items into a MySQL table. Three of the items are strings and are being inserted fine. The fourth is (in MySQL) an INT of length 3. In the PHP script the value is being declared as an integer :

$code = 200;

Then it along with the other parameters are being inserted via a prepared statement :

$stmt = $this->db->prepare('INSERT INTO table (value1,value2,value3,code) VALUES (:value1,:value2,:value3,:code)');
....(three bindValues for the other items)
$stmt->bindValue(':code', (int) $code, PDO::PARAM_INT);

No matter what I try, though, whilst the insert statement is executed, within the database the value is coming out as 127, not 200.

I've tried pretty much every variety I think of, but it stubbornly refuses to go into the database as 200. Any suggestions?

Answer Source

You have the column type tinyint. You can change the column type with the following query:

ALTER TABLE tablename MODIFY columnname INTEGER;
Recommended from our users: Dynamic Network Monitoring from WhatsUp Gold from IPSwitch. Free Download