异常信息:消息:SQLSTATE [HY093]:参数号无效:没有绑定参数

时间:2014-03-11 08:30:01

标签: php jquery ajax zend-framework

我这里有一个代码,必须搜索并回发在添加按钮上方的表格中选择的信息,搜索工作但我的帖子有问题回到表格功能。这些是显示有错误的行。

  

C:\ xampp \ htdocs \ portal-gep-2 \ application \ models \ ServiceProviders.php(68):Zend_Db_Table_Abstract-> fetchRow(Object(Zend_Db_Table_Select))

public function getName($id)
{
    $select = $this->select();
    $select->where('service_provider_id = ?', $id);

    $result = $this->fetchRow($select);  //this line
    return $result['service_provider_name']; 
}
  

#6 C:\ xampp \ htdocs \ portal-gep-2 \ application \ modules \ admin \ controllers \ AjaxController.php(1104):Model_ServiceProviders-> getName(NULL)

    public function postserviceproviderAction()

        {
            $form = new Form_IndustrialTable();       
            $this->view->form = $form;

            if(!$form->isValid($_POST)) 
            {
                 $values=$form->getValues();
            }

            $sp = $this->getRequest()->getPost('serviceprovider', null);


            $mdlserviceprovider = new Model_ServiceProviders();
            $serviceprovider  = $mdlserviceprovider ->getName($id); //this line


            $rtn_array= array(  'sp'    => $sp,                         
                                'serviceprovider ' => $serviceprovider);         


             $this->_helper->layout->disableLayout();
             $this->_helper->viewRenderer->setNoRender();

            echo Zend_Json::encode($rtn_array);

}

1 个答案:

答案 0 :(得分:0)

您没有向$id添加任何初始值,因此null会导致错误。

您希望SQL查询看起来像SELECT * FROM service_providers WHERE service_provider_id = 50,但为此您必须提供要查找的ID(在此示例中为50)。在使用$id之前,您需要为变量$select->where('service_provider_id = ?', $id);添加一些值,但是您的代码永远不会将任何值添加到变量$id

如果我猜你的想法,那么你需要换行:

$serviceprovider  = $mdlserviceprovider ->getName($id);

为:

$serviceprovider  = $mdlserviceprovider ->getName($sp);

此代码的这部分内容可能是不必要的,因为它什么都不做:

        $form = new Form_IndustrialTable();       
        $this->view->form = $form;

        if(!$form->isValid($_POST)) 
        {
             $values=$form->getValues(); //you never use $values
        }