dro44817 2011-08-08 14:27
浏览 41
已采纳

Zend_Validate_Db_NoRecordExists - 查询被破坏,不确定原因

I've written the following:

  $email->addValidator('emailAddress', false)
        ->setRequired(true)
        ...
        ->addValidator(new Zend_Validate_Db_NoRecordExists(
            array(
                'table'   => 'site_users',
                'field'   => 'email',
            )
        ));

This isn't working and instead I'm getting the following error message:

Message: SQLSTATE[42000]: Syntax error or access violation: 1064 You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'FROM site_users WHERE (`` = 'Test data4') LIMIT 1' at line 1

Any ideas?

  • 写回答

1条回答 默认 最新

  • duanaoshu1989 2011-08-08 15:36
    关注

    Just had a look at the code and found this in the constructor for Zend_Validate_Db_Abstract (parent of Zend_Validate_Db_NoRecordExists):

            $options       = func_get_args();
            $temp['table'] = array_shift($options);
            $temp['field'] = array_shift($options);
            if (!empty($options)) {
                $temp['exclude'] = array_shift($options);
            }
    
            if (!empty($options)) {
                $temp['adapter'] = array_shift($options);
            }
    
            $options = $temp;
    

    So it expects the options to be in the correct order, and ignores the keys you specify! Bizarre. But it looks like your code should have still worked - what version of ZF are you running?

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

悬赏问题

  • ¥15 slaris 系统断电后,重新开机后一直自动重启
  • ¥15 51寻迹小车定点寻迹
  • ¥15 谁能帮我看看这拒稿理由啥意思啊阿啊
  • ¥15 关于vue2中methods使用call修改this指向的问题
  • ¥15 idea自动补全键位冲突
  • ¥15 请教一下写代码,代码好难
  • ¥15 iis10中如何阻止别人网站重定向到我的网站
  • ¥15 滑块验证码移动速度不一致问题
  • ¥15 Utunbu中vscode下cern root工作台中写的程序root的头文件无法包含
  • ¥15 麒麟V10桌面版SP1如何配置bonding