致命错误:带有消息'SQLSTATE [HY093]'的未捕获异常'PDOException'

时间:2015-10-04 20:54:52

标签: mysql sql error-handling fatal-error

由于某些原因我不断收到'SQLSTATE [HY093]错误。解决方案必须简单,但我只是没有看到它。该错误表示它位于ControllerStore.php的第83行(包含在下面)和store_update.php的第55行(也包括在下面)

ControllerStore.php

public function updateStore($itm) 
{
    $stmt = $this->pdo->prepare('UPDATE tbl_storefinder_stores

                                    SET store_name = :store_name,                                             
                                        store_desc = :store_desc, 
                                        lat = :lat, 
                                        lon = :lon,                                                                                     
                                        phone_no = :phone_no, 
                                        email = :email,                                              
                                        category_id = :category_id, 
                                        created_at = :created_at, 
                                        updated_at = :updated_at,
                                        is_deleted = :is_deleted,                                  

                                        idade = :idade,
                                        peso = :peso,
                                        oral = :oral,
                                        anal = :anal,
                                        dom = :dom,
                                        eles = :eles,
                                        elas = :elas,
                                        casais = :casais,
                                        acessorios = :acessorios,
                                        eventos = :eventos,
                                        viagens = :viagens,
                                        idiomas = :idiomas,
                                        horarios = :horarios,
                                        hora = :hora,
                                        locais = :locais,
                                        kiss = :kiss


                                    WHERE store_id = :store_id');

    $result = $stmt->execute(
                        array('store_name' => $itm->store_name,

                                'store_desc' => $itm->store_desc,
                                'lat' => $itm->lat,
                                'lon' => $itm->lon,                                                                 
                                'phone_no' => $itm->phone_no,
                                'email' => $itm->email,                                    
                                'category_id' => $itm->category_id,
                                'created_at' => $itm->created_at,
                                'updated_at' => $itm->updated_at,  
                                'is_deleted' => $itm->is_deleted,                                  
                                'idade' => $itm->idade, 
                                'peso' => $itm->peso, 
                                'oral' => $itm->oral, 
                                'anal' => $itm->anal, 
                                'dom' => $itm->dom, 
                                'eles' => $itm->eles, 
                                'elas' => $itm->elas, 
                                'casais' => $itm->casais, 
                                'acessorios' => $itm->acessorios, 
                                'eventos' => $itm->eventos, 
                                'viagens' => $itm->viagens, 
                                'idiomas' => $itm->idiomas, 
                                'horarios' => $itm->horarios, 
                                'hora' => $itm->hora, 
                                'locais' => $itm->locais, 
                                'kiss' => $itm->kiss

                                ));

    return $result ? true : false;

}

store_update.php

if($store_id != null) {

    $store = $controller->getStoreByStoreId($store_id);

    if( isset($_POST['submit']) ) {

         $itm = new Store();
$itm->store_name = htmlspecialchars(trim(strip_tags($_POST['store_name'])));
$store_desc = preg_replace('~[\r\n]+~', '', $_POST['store_desc']);
$itm->store_desc = htmlspecialchars(trim(strip_tags($store_desc)));    
$itm->lat = trim(strip_tags($_POST['lat']));
$itm->lon = htmlspecialchars(trim(strip_tags($_POST['lon'])), ENT_QUOTES);
$itm->created_at = time();      
$itm->phone_no = htmlspecialchars(trim(strip_tags($_POST['phone_no'])), ENT_QUOTES);
$itm->email = trim(strip_tags($_POST['email']));
$itm->category_id = trim(strip_tags($_POST['category_id']));
$itm->updated_at = time();    
$itm->is_deleted = trim(strip_tags($_POST['is_deleted']));
$itm->idade = trim(strip_tags($_POST['idade']));
$itm->peso = trim(strip_tags($_POST['peso']));
$itm->oral = trim(strip_tags($_POST['oral']));
$itm->anal = trim(strip_tags($_POST['anal']));
$itm->dom = trim(strip_tags($_POST['dom']));
$itm->eles = trim(strip_tags($_POST['eles']));
$itm->elas = trim(strip_tags($_POST['elas']));
$itm->casais = trim(strip_tags($_POST['casais']));
$itm->acessorios = trim(strip_tags($_POST['acessorios']));
$itm->eventos = trim(strip_tags($_POST['eventos']));
$itm->viagens = trim(strip_tags($_POST['viagens']));
$itm->idiomas = trim(strip_tags($_POST['idiomas']));
$itm->horarios = trim(strip_tags($_POST['horarios']));
$itm->hora = trim(strip_tags($_POST['hora']));
$itm->locais = trim(strip_tags($_POST['locais']));
$itm->kiss = trim(strip_tags($_POST['kiss']));


        $controller->updateStore($itm);
        echo "<script type='text/javascript'>location.href='stores.php';  </script>";
      }
  }
  else {
      echo "<script type='text/javascript'>location.href='403.php';</script>";
  }

1 个答案:

答案 0 :(得分:3)

变量的数量与绑定变量的数量不匹配。

你在store_update.php

中缺少is_deleted