pdo和更新无法正常工作

时间:2014-09-05 17:15:18

标签: php mysql pdo

我正在使用pdo php mysql,我使用以下脚本进行更新

$pdo = new PDO('mysql:host=79.170.44.155;dbname=cl36-nedal', 'cl36-nedal', 'wC-X.zfUb'); 
$pdo->setAttribute( PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION );


 $statement = $pdo->prepare("update annonce set id_compte= :id_compte , mod=:date_annonce, type= :type , section= :section ,
 vac =:vac , bien =:bien , ville=:ville , prix =:prix,sup_glob=:sup_glob , sup_hab=:sup_hab,nbr_chambre=:nbr_chambre,bains=:bains,
 etage_app=:etage_app,annee_const:=annee_const,jardin=:jardin,garage=:garage,terrasse=:terrasse,ascenseur=:ascenseur,gardiannage=:gardiannage,
 communication=:communication,securite=:securite,balcon=:balcon,picine=:picine,chem=:chem,clima=:clima,sansvi=:sansvi,park_vis=:park_vis,
 ter_imm=:ter_imm,info=:info,photo1=:p,photo2=:p1,photo3=:p2,photo4=:p3 where id_annonce =:annonce");


$statement->bindValue(':annonce',$hid);

$statement->bindValue(':id_compte',$id);
$statement->bindValue(':date_annonce',$date);
$statement->bindValue(':type',$type);
$statement->bindValue(':section',$section);
$statement->bindValue(':vac',$vac);
$statement->bindValue(':bien',$_POST['biens']);
$statement->bindValue(':ville',$_POST['villes']);
$statement->bindValue(':prix',$prix);
$statement->bindValue(':sup_glob',$sg);
$statement->bindValue(':sup_hab',$sh);
$statement->bindValue(':nbr_chambre',$nbc);
$statement->bindValue(':bains',$nbs);
$statement->bindValue(':etage_app',$etage);
$statement->bindValue(':annee_const',$annee);
$statement->bindValue(':jardin',$jardin);
$statement->bindValue(':garage',$garage);
$statement->bindValue(':terrasse',$terrase);
$statement->bindValue(':ascenseur',$ascenseur);
$statement->bindValue(':gardiannage',$gardiennage);
$statement->bindValue(':communication',$communication);
$statement->bindValue(':securite',$ss);
$statement->bindValue(':picine',$piscine);
$statement->bindValue(':balcon',$balcon);
$statement->bindValue(':chem',$cham);
$statement->bindValue(':clima',$clim);
$statement->bindValue(':sansvi',$vav);
$statement->bindValue(':park_vis',$pv);
$statement->bindValue(':ter_imm',$ti);
$statement->bindValue(':info',$info);   
$statement->bindValue(':p',$tableau[0]);
$statement->bindValue(':p1',$tableau[1]);
$statement->bindValue(':p2',$tableau[2]);
$statement->bindValue(':p3',$tableau[3]);


$statement->execute();

问题是我得到了这个答案

  

例外 - > string(100)“SQLSTATE [HY093]:参数号无效:绑定变量数与令牌数不匹配”

请问是什么问题。

1 个答案:

答案 0 :(得分:3)

查询中的错字:

  [...snip...] annee_const:=annee_const  [...snip...]
                          ^^---

您已转置:=。所以没有:annee_const参数,因此你的错误。