Я использую 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');
Есть идеи, как заставить это работать?
IЯ преобразую в PDO, и я предпочел бы не переписывать все константы, перечисления и запросы в моем приложении: (