【发布时间】:2010-09-02 08:59:28
【问题描述】:
我正在使用 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,我不想重写我的应用程序中的所有常量、枚举和查询:(
【问题讨论】:
-
好的。我会给自己挖一个大坑,直到所有的 ENUM 都被聪明的外键替换后才会出来。 叹息