I had a problem with the method Doctrine_Table::find()
, since it's thorowing an exception of
SQLSTATE[HY093]: Invalid parameter number: number of bound variables does not match number of tokens
I Doctrine::getTable('City')->findOneById($id);
yerine kullanarak sorunu çözmüş ve iyi çalışıyor.
Ben official website ben yöntemi hakkında hiçbir belgelerine beri şaşırdı sorunun Doctrine_Table::find()
yaklaşık invistigate çalıştı.
Any one knows what's the problem? is it deprecated? BTW it's exists on the actual code! of the version (1.2.1).
veritabanı hakkında daha fazla bilgi:
CREATE TABLE IF NOT EXISTS `country` (
`id` INT NOT NULL AUTO_INCREMENT ,
`name` VARCHAR(64) NOT NULL ,
PRIMARY KEY (`id`) )
ENGINE = InnoDB
DEFAULT CHARACTER SET = utf8
COLLATE = utf8_unicode_ci;
CREATE TABLE IF NOT EXISTS `city` (
`id` INT NOT NULL AUTO_INCREMENT ,
`name` VARCHAR(64) NOT NULL ,
`country_id` INT NOT NULL ,
PRIMARY KEY (`id`, `country_id`) ,
INDEX `fk_city_country` (`country_id` ASC) ,
CONSTRAINT `fk_city_country`
FOREIGN KEY (`country_id` )
REFERENCES `country` (`id` )
ON DELETE CASCADE
ON UPDATE NO ACTION)
ENGINE = InnoDB
DEFAULT CHARACTER SET = utf8
COLLATE = utf8_unicode_ci;
Ne garip ki hem Doctrine_Table::find()
, ve Doctrine_Table::findOneById()
Country
masanın üzerinde çalışıyor!.
PS: I Doctrine_Table::findOneById()
bir __call()
üretilen bir yöntem olduğunu biliyoruz. Ve beklendiği gibi gerçek find()
yöntemi davranmaz neden beni daha karıştı yapmak (benim beklenti yanlış ya da ne)!