PDO не может сравнивать mysql ENUM с использованием целых чисел в подготовленных операциях

Я использую PDO и подготовленные операторы, но я не могу получить никаких результатов при сравнении поля ENUM с целым числом .

Пример:

$db = new PDO('mysql:host=localhost;dbname=****', '***', '***'); $s = $db->prepare('SELECT id FROM t2 WHERE lang = ?'); $s->execute(array('en')); // Works print_r($s->fetchAll()); $s->execute(array(2)); // Does not work print_r($s->fetchAll()); 

Я тестирую эту таблицу:

 DROP TABLE IF EXISTS t2; CREATE TABLE t2 ( id int(10) NOT NULL AUTO_INCREMENT, lang enum('no','en','fr') NOT NULL, PRIMARY KEY (id) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; INSERT INTO t2 (id, lang) VALUES (NULL , 'en'); 

Любая идея о том, как заставить это работать?

Я конвертирую в PDO, и я бы предпочел не переписывать все константы, перечисления и запросы в моем приложении 🙁