обновить запрос в Zend Framework - PullRequest
3 голосов
/ 03 апреля 2012

что не так с этим Query ??? мне нужен этот запрос.

UPDATE  user_preferences SET user_preferences_value = '2'
 WHERE user_preferences_name = 'is_user_package_active'
 AND   user_id = '$user_id'
 AND   phone_service_id='$phone_service_id';

выше запроса равно ZF запроса ниже

 function Deactivate_Service($user_id,$phone_service_id){
           $DB = Zend_Db_Table_Abstract::getDefaultAdapter();
           $data = array('user_preferences_value' => 2);
           $where = "user_preferences_name = 'is_user_package_active' AND user_id = " . (int)$user_id ." AND phone_service_id = ".(int)$phone_service_id;
           $DB->update('user_preferences',$data, $where);
      }

я получаю 0 с моим ZF Query

РЕДАКТИРОВАНИЕ:

public function deactivateserviceAction(){
       $this->_helper->viewRenderer->setNeverRender();
       $user = new Zend_Session_Namespace('user');
       $user_id =$user->user_id;
       $phone_service_id      = $this->_getParam('phone_service_id');
       //$Deactive = new Account();
        $DB = Zend_Db_Table_Abstract::getDefaultAdapter();
 $DB->query("UPDATE  user_preferences SET user_preferences_value = '2'
  WHERE user_preferences_name = 'is_user_package_active' AND   user_id = '$user_id' AND phone_service_id='$phone_service_id'");
      // $a = $Deactive->Deactivate_Service($user_id,$phone_service_id);
      // var_dump($a);

 }

1 Ответ

7 голосов
/ 03 апреля 2012

Ваш вызов 'update' в порядке, хотя в вашем случае лучше использовать следующий синтаксис для построения предложения WHERE (но это стилистическая вещь):

$data = array('user_preference_value' => 2);

$where = array(
    'user_preferences_name = ?' => 'is_user_package_active',
    'user_id = ?' => $user_id,
    'phone_service_id = ?' => $phone_service_id
);

$DB->update('user_preferences', $data, $where);

Так что я предполагаю, чтопроблема здесь с вашим адаптером по умолчанию.Вы уверены, что настроили соединение?Можете ли вы успешно запустить SELECT с тем же объектом $ DB?Попробуйте запустить простое обновление SQL с вашим объектом, то есть $ DB-> query ('Ваш необработанный запрос UPDATE здесь'), чтобы увидеть, работает ли он.

Также стандартный способ получения базы данных по умолчанию - Zend_Db_Table,но это также стилистически.

...