Я использую Zend Framework 1.11.4, а также Zend_Db. Проблема в том, что у меня есть столбец для пола, который имеет значение 0 или 1 (BIT (1)), когда я помещаю false, вставка в порядке, но когда я верю, появляется следующая ошибка: «Данные слишком длинны для столбца» секс 'в строке 1'
Я уже отлаживал и проверял, что это логическое! С false (0) нет ошибки, но с ошибкой true (Class Application_Model_UserNodeMapper):
public function save(Application_Model_UserNode $user){ $sex = $user->getSex(); if($sex == 'm'){ $user->setSex(false); //NO ERROR!! } else{ $user->setSex(true); //ERROR!! } $data = $user->getProperties(); if(null === ($id = $user->getId())) { unset($data['id']); $id = $this->getDbTable()->insert($data); return $id; } else{ $this->getDbTable()->update($data, array('id = ?' => $id)); return null; } }
Код для Application_model_UserNode (Некоторые свойства находятся на португальском языке, я изменил секс на секс, чтобы прояснить ситуацию):
<?php class Application_Model_UserNode { protected $id; protected $nome_completo; protected $nome_exibicao; protected $senha; protected $status; protected $email; protected $sex; protected $data_nasc; protected $cidade_id; protected $pais_id; function __construct(array $options = null) { if (is_array($options)) { $this->setOptions($options); } } public function __set($name, $value) { $method = 'set' . $name; if (('mapper' == $name) || !method_exists($this, $method)) { throw new Exception('Invalid userNode property'); } $this->$method($value); } public function __get($name) { $method = 'get' . $name; if (('mapper' == $name) || !method_exists($this, $method)) { throw new Exception('Invalid guestbook property'); } return $this->$method(); } public function setOptions(array $options) { $methods = get_class_methods($this); foreach ($options as $key => $value) { $method = 'set' . ucfirst($key); if (in_array($method, $methods)) { $this->$method($value); } } return $this; } public function getId() { return $this->id; } public function setId($id) { $this->id = $id; } public function getNome_completo() { return $this->nome_completo; } public function setNome_completo($nome_completo) { $this->nome_completo = $nome_completo; } public function getNome_exibicao() { return $this->nome_exibicao; } public function setNome_exibicao($nome_exibicao) { $this->nome_exibicao = $nome_exibicao; } public function getSenha() { return $this->senha; } public function setSenha($senha) { $this->senha = $senha; } public function getStatus() { return $this->status; } public function setStatus($status) { $this->status = $status; } public function getEmail() { return $this->email; } public function setEmail($email) { $this->email = $email; } public function getSex() { return $this->sex; } public function setSex($sex) { $this->sex = $sex; } public function getData_nasc() { return $this->data_nasc; } public function setData_nasc($data_nasc) { $this->data_nasc = $data_nasc; } public function getProperties(){ $properties = get_object_vars($this); return $properties; } }
Спасибо за помощь!