PDO hazırlanan tablolarda tamsayıları kullanarak mysql ENUM karşılaştırmak olamaz

0 Cevap php

Ben PDO ve hazırlanmış deyimleri kullanıyorum, ama herhangi bir sonuç almak için görünmüyor olabilir comparing an ENUM field with an integer.

Örnek:

$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());

Ben bu tabloya karşı test muyum:

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');

Bu işe almak konusunda herhangi bir fikir?

Ben PDO dönüştürme yaşıyorum ve benim app tüm sabitler, Çeteleler ve sorguları yeniden tercih ediyorum: (

0 Cevap