2012-11-04 54 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

相關問題