2012-11-04 32 views
1

我在执行简单的INSERT请求时遇到了一些问题。 正如标题所说,我有这条消息“无效的参数号:参数未定义”。第一个值是一个ID(主自动增量)php - 无效的参数号:参数未定义

$req = $pdo->prepare('INSERT INTO championnat_classement 
         VALUES (
         "", 
         :Equipe, 
         :Championnat, 
         :Saison, 
         :Journee, 
         :Points, 
         :NbMatch, 
         :Position, 
         :Victoire, 
         :Nul, 
         :Defaite, 
         :MatchJoueDomicile, 
         :PointsDomicile, 
         :VictoireDomicile, 
         :NulDomicile, 
         :DefaiteDomicile, 
         :ButPourDomicile, 
         :ButContreDomicile, 
         :MatchJoueExterieur, 
         :PointsExterieur, 
         :VictoireExterieur, 
         :NulExterieur, 
         :DefaiteExterieur, 
         :ButPourExterieur, 
         :ButContreExterieur  
         )'); 
if ($req->execute(array(
         "Equipe" => $this->idEquipe1, 
         "Championnat" => $this->idChamp, 
         "Saison" => $this->saison, 
         "Journee" => $this->journee, 
         "Points" => $this->pointsTotaux, 
         "NbMatch" => $this->matchJouesTotal, 
         "Position" => $this->position, 
         "Victoire" => $this->matchGagneeTotal, 
         "Nul" => $this->matchNulTotal, 
         "Defaite" => $this->matchPerduTotal, 
         "MatchJoueDomicile" => $this->matchJouesDomicile, 
         "PointsDomicile" => $this->pointsDomicile, 
         "VictoireDomicile " => $this->matchJouesDomicile, 
         "NulDomicile" => $this->matchNulDomicile, 
         "DefaiteDomicile" => $this->matchPerduDomicile, 
         "ButPourDomicile" => $this->butMarquesDomicile, 
         "ButContreDomicile" => $this->butEncaissesDomicile, 
         "MatchJoueExterieur" => $this->matchJouesExterieur, 
         "PointsExterieur" => $this->pointsExterieur, 
         "VictoireExterieur" => $this->matchGagneeExterieur, 
         "NulExterieur" => $this->matchNulExterieur, 
         "DefaiteExterieur" => $this->matchPerduExterieur, 
         "ButPourExterieur" => $this->butMarquesExterieur, 
         "ButContreExterieur" => $this->butEncaissesExterieur 
        ))) { 
       return "ok"; 
      } 

如何解决这个问题?

+0

什么是括号中的数值后(..你的ID? – Svetoslav

回答

1

在VALUES前的第一个()中写下所有列名,并在第二个位置跳过你的ID,在那里放上“”.. !!!我不知道你列的确切名称,所以你必须给他们写..

$req = $pdo->prepare('INSERT INTO championnat_classement 
          (
          Equipe, 
          Championnat, 
          Saison, 
          Journee, 
          Points, 
          NbMatch, 
          Position, 
          Victoire, 
          Nul, 
          Defaite, 
          MatchJoueDomicile, 
          PointsDomicile, 
          VictoireDomicile, 
          NulDomicile, 
          DefaiteDomicile, 
          ButPourDomicile, 
          ButContreDomicile, 
          MatchJoueExterieur, 
          PointsExterieur, 
          VictoireExterieur, 
          NulExterieur, 
          DefaiteExterieur, 
          ButPourExterieur, 
          ButContreExterieur 
          ) VALUES (
          :Equipe, 
          :Championnat, 
          :Saison, 
          :Journee, 
          :Points, 
          :NbMatch, 
          :Position, 
          :Victoire, 
          :Nul, 
          :Defaite, 
          :MatchJoueDomicile, 
          :PointsDomicile, 
          :VictoireDomicile, 
          :NulDomicile, 
          :DefaiteDomicile, 
          :ButPourDomicile, 
          :ButContreDomicile, 
          :MatchJoueExterieur, 
          :PointsExterieur, 
          :VictoireExterieur, 
          :NulExterieur, 
          :DefaiteExterieur, 
          :ButPourExterieur, 
          :ButContreExterieur  
         )'); 
1

如果id是自动生成的(即在AUTO_INCREMENT中使用mysql),您不必在属性列表中指定它。

Here你可以找到一些关于如何正确组合一个格式正确的插入查询的例子。

例子:

INSERT INTO table_name (att2, att3, ..., attN) VALUES (value2, value3, ..., valueN); 
+0

思的提示,我tryed而不考虑的atttribute自动生成的ID,但仍然有相同的错误信息 – tannana

+0

您是否以正确的方式撰写查询? – rano

相关问题