2017-01-30 29 views
0

は私がライン上で242このエラーメッセージが表示されます:致命的なエラー:キャッチされないPDOException:SQLSTATE [HY093]

Fatal error: Uncaught PDOException: SQLSTATE[HY093]: Invalid parameter number: number of bound variables does not match number of tokens on line 242

PDOException: SQLSTATE[HY093]: Invalid parameter number: parameter was not defined on line 242

global $db, $id; 

$malattiaPastNome = $_POST['malattia_past_nome']; 
$malattiaPastDataInizio = $_POST['malattia_past_data_inizio']; 
$malattiaPastDataFine = $_POST['malattia_past_data_fine']; 
$malattiaPresentiNome = $_POST['malattia_presenti_nome']; 
$interventiTraumi = $_REQUEST['interventi_traumi']; 
$interventiTraumiAltro = $_POST['interventi_traumi_altro']; 
$interventiTraumiData = $_POST['interventi_traumi_data']; 
$sintomiAttualiNome = $_REQUEST['sintomi_attuali_nome']; 
$sintomiAttualiNomeAltro = $_POST['sintomi_attuali_nome_altro']; 
$sintomiAttualiFrequenza = $_REQUEST['sintomi_attuali_frequenza']; 
$sintomiAttualiDurata = $_REQUEST['sintomi_attuali_durata']; 
$sintomiAttualiIntensita = $_REQUEST['sintomi_attuali_intensita']; 
$alimQuotidColazione = $_REQUEST['alim_quotid_colazione']; 
$alimQuotidColazioneBevande = $_REQUEST['alim_quotid_colazione_bevande']; 
$alimQuotidColazioneAlimenti = $_REQUEST['alim_quotid_colazione_alimenti']; 
$alimQuotidMerenda = $_REQUEST['alim_quotid_merenda']; 
$alimQuotidMerendaBevande = $_REQUEST['alim_quotid_merenda_bevande']; 
$alimQuotidMerendaAlimenti = $_REQUEST['alim_quotid_merenda_alimenti']; 
$alimQuotidPranzo = $_REQUEST['alim_quotid_pranzo']; 
$alimQuotidPranzoBevande = $_REQUEST['alim_quotid_pranzo_bevande']; 
$alimQuotidPranzoAlimenti = $_REQUEST['alim_quotid_pranzo_alimenti']; 
$alimQuotidPomeridiano = $_REQUEST['alim_quotid_pomeridiano']; 
$alimQuotidPomeridianoBevande = $_REQUEST['alim_quotid_pomeridiano_bevande']; 
$alimQuotidPomeridianoAlimenti = $_REQUEST['alim_quotid_pomeridiano_alimenti']; 
$alimQuotidCena = $_REQUEST['alim_quotid_cena']; 
$alimQuotidCenaBevande = $_REQUEST['alim_quotid_cena_bevande']; 
$alimQuotidCenaAlimenti = $_POST['alim_quotid_cena_alimenti']; 

$sql = 'UPDATE utenti2 SET malattia_past_nome=:past_nome, malattia_past_data_inizio=:past_dataInizio, malattia_past_data_fine=:past_data_fine, malattia_presenti_nome=:presenti_nome, interventi_traumi=:interventi_traumi, interventi_traumi_altro=:traumi_altro, interventi_traumi_data=:traumi_data, sintomi_attuali_nome=:attuali_nome, sintomi_attuali_nome_altro=:attuali_nome_altro, sintomi_attuali_frequenza=:attuali_frequenza, sintomi_attuali_durata=:attuali_durata, sintomi_attuali_intensita=:attuali_intensita, alim_quotid_colazione=:colazione, alim_quotid_colazione_bevande=:colazioe_bevande, alim_quotid_colazione_alimenti=:colazione_alimenti, alim_quotid_merenda=:merenda, alim_quotid_merenda_bevande=:merenda_bevande, alim_quotid_merenda_alimenti=:merenda_alimenti, alim_quotid_pranzo=:_pranzo, alim_quotid_pranzo_bevande=:pranzo_bevande, alim_quotid_pranzo_alimenti=:pranzo_alimenti, alim_quotid_pomeridiano=:pomeridiano, alim_quotid_pomeridiano_bevande=:pomeridiano_bevande, alim_quotid_pomeridiano_alimenti=:pomeridiano_alimenti, alim_quotid_cena=:cena, alim_quotid_cena_bevande=:bevande, alim_quotid_cena_alimenti=:cena_alimenti WHERE id=:id LIMIT 1'; 
     $result = $db->prepare($sql); 
     $result->bindValue(':id', $id, PDO::PARAM_INT); 

     $result->bindValue(':past_nome', $malattiaPastNome, PDO::PARAM_STR); 
     $result->bindValue(':past_dataInizio', $malattiaPastDataInizio, PDO::PARAM_STR); 
     $result->bindValue(':past_data_fine', $malattiaPastDataFine, PDO::PARAM_STR);   
     $result->bindValue(':presenti_nome', $malattiaPresentiNome, PDO::PARAM_STR); 
     $result->bindValue(':interventi_traumi', $interventiTraumi, PDO::PARAM_STR); 
     $result->bindValue(':traumi_altro', $interventiTraumiAltro, PDO::PARAM_STR); 
     $result->bindValue(':traumi_data', $interventiTraumiData, PDO::PARAM_STR); 
     $result->bindValue(':attuali_nome', $sintomiAttualiNome, PDO::PARAM_STR); 
     $result->bindValue(':attuali_nome_altro', $sintomiAttualiNomeAltro, PDO::PARAM_STR); 
     $result->bindValue(':attuali_frequenza', $sintomiAttualiFrequenza, PDO::PARAM_STR); 
     $result->bindValue(':attuali_durata', $sintomiAttualiDurata, PDO::PARAM_STR); 
     $result->bindValue(':attuali_intensita', $sintomiAttualiIntensita, PDO::PARAM_STR); 

     $result->bindValue(':colazione', $alimQuotidColazione, PDO::PARAM_STR); 
     $result->bindValue(':colazione_bevande', $alimQuotidColazioneBevande, PDO::PARAM_STR); 
     $result->bindValue(':colazione_alimenti', $alimQuotidColazioneAlimenti, PDO::PARAM_STR); 
     $result->bindValue(':merenda', $alimQuotidMerenda, PDO::PARAM_STR); 
     $result->bindValue(':merenda_bevande', $alimQuotidMerendaBevande, PDO::PARAM_STR); 
     $result->bindValue(':merenda_alimenti', $alimQuotidMerendaAlimenti, PDO::PARAM_STR); 
     $result->bindValue(':pranzo', $alimQuotidPranzo, PDO::PARAM_STR); 
     $result->bindValue(':pranzo_bevande', $alimQuotidPranzoBevande, PDO::PARAM_STR); 
     $result->bindValue(':pranzo_alimenti', $alimQuotidPranzoAlimenti, PDO::PARAM_STR); 
     $result->bindValue(':pomeridiano', $alimQuotidPomeridiano, PDO::PARAM_STR); 
     $result->bindValue(':pomeridiano_bevande', $alimQuotidPomeridianoBevande, PDO::PARAM_STR); 
     $result->bindValue(':pomeridiano_alimenti', $alimQuotidPomeridianoAlimenti, PDO::PARAM_STR); 
     $result->bindValue(':cena', $alimQuotidCena, PDO::PARAM_STR); 
     $result->bindValue(':cena_bevande', $alimQuotidCenaBevande, PDO::PARAM_STR); 
     $result->bindValue(':cena_alimenti', $alimQuotidCenaAlimenti, PDO::PARAM_STR); 


     $result->execute(); //line 242 

を私はすべてのVARSとコードをチェックし、複数回試みたが、エラーを見つけることができません。

おかげ

+0

私は提供されたコードに望ましくない空白のカップルを見ることができます( 'alim_quotid_cena_al imenti =:cena_alimenti')。私は問題があなたの実際のコードの一部である場合それがちょうどだと思います:) –

+0

は空白を削除しようとしましたが、同じエラーが発生しました。 – Fetz

答えて

1

$result->bindValue(':past_dataFine', $malattiaPastDataFine, PDO::PARAM_STR); 

最終バージョンの作業:

global $db, $id; 

$malattiaPastNome = $_POST['malattia_past_nome']; 
$malattiaPastDataInizio = $_POST['malattia_past_data_inizio']; 
$malattiaPastDataFine = $_POST['malattia_past_data_fine']; 
$malattiaPresentiNome = $_POST['malattia_presenti_nome']; 
$interventiTraumi = $_REQUEST['interventi_traumi']; 
$interventiTraumiAltro = $_POST['interventi_traumi_altro']; 
$interventiTraumiData = $_POST['interventi_traumi_data']; 
$sintomiAttualiNome = $_REQUEST['sintomi_attuali_nome']; 
$sintomiAttualiNomeAltro = $_POST['sintomi_attuali_nome_altro']; 
$sintomiAttualiFrequenza = $_REQUEST['sintomi_attuali_frequenza']; 
$sintomiAttualiDurata = $_REQUEST['sintomi_attuali_durata']; 
$sintomiAttualiIntensita = $_REQUEST['sintomi_attuali_intensita']; 
$alimQuotidColazione = $_REQUEST['alim_quotid_colazione']; 
$alimQuotidColazioneBevande = $_REQUEST['alim_quotid_colazione_bevande']; 
$alimQuotidColazioneAlimenti = $_REQUEST['alim_quotid_colazione_alimenti']; 
$alimQuotidMerenda = $_REQUEST['alim_quotid_merenda']; 
$alimQuotidMerendaBevande = $_REQUEST['alim_quotid_merenda_bevande']; 
$alimQuotidMerendaAlimenti = $_REQUEST['alim_quotid_merenda_alimenti']; 
$alimQuotidPranzo = $_REQUEST['alim_quotid_pranzo']; 
$alimQuotidPranzoBevande = $_REQUEST['alim_quotid_pranzo_bevande']; 
$alimQuotidPranzoAlimenti = $_REQUEST['alim_quotid_pranzo_alimenti']; 
$alimQuotidPomeridiano = $_REQUEST['alim_quotid_pomeridiano']; 
$alimQuotidPomeridianoBevande = $_REQUEST['alim_quotid_pomeridiano_bevande']; 
$alimQuotidPomeridianoAlimenti = $_REQUEST['alim_quotid_pomeridiano_alimenti']; 
$alimQuotidCena = $_REQUEST['alim_quotid_cena']; 
$alimQuotidCenaBevande = $_REQUEST['alim_quotid_cena_bevande']; 
$alimQuotidCenaAlimenti = $_POST['alim_quotid_cena_alimenti']; 
$sql = 'UPDATE utenti2 SET malattia_past_nome=:past_nome , malattia_past_data_inizio=:past_data_inizio , malattia_past_data_fine=:past_data_fine , malattia_presenti_nome=:presenti_nome , interventi_traumi=:interventi_traumi , interventi_traumi_altro=:traumi_altro , interventi_traumi_data=:traumi_data , sintomi_attuali_nome=:attuali_nome , sintomi_attuali_nome_altro=:attuali_nomea , sintomi_attuali_frequenza=:attuali_frequenza , sintomi_attuali_durata=:attuali_durata , sintomi_attuali_intensita=:attuali_intensita , alim_quotid_colazione=:colazione , alim_quotid_colazione_bevande=:colazione_bevande , alim_quotid_colazione_alimenti=:colazione_alimenti , alim_quotid_merenda=:merenda , alim_quotid_merenda_bevande=:merenda_bevande , alim_quotid_merenda_alimenti=:merenda_alimenti , alim_quotid_pranzo=:pranzo , alim_quotid_pranzo_bevande=:pranzo_bevande , alim_quotid_pranzo_alimenti=:pranzo_alimenti , alim_quotid_pomeridiano=:pomeridiano , alim_quotid_pomeridiano_bevande=:pomeridiano_bevande , alim_quotid_pomeridiano_alimenti=:pomeridiano_alimenti , alim_quotid_cena=:cena , alim_quotid_cena_bevande=:cena_bevande , alim_quotid_cena_alimenti=:cena_alimenti WHERE id=:id LIMIT 1'; 

     $result = $db->prepare($sql); 
     $result->bindValue(':id', $id, PDO::PARAM_INT); 

     $result->bindValue(':past_nome', $malattiaPastNome, PDO::PARAM_STR); 
     $result->bindValue(':past_data_inizio', $malattiaPastDataInizio, PDO::PARAM_STR); 
     $result->bindValue(':past_data_fine', $malattiaPastDataFine, PDO::PARAM_STR); 
     $result->bindValue(':presenti_nome', $malattiaPresentiNome, PDO::PARAM_STR); 
     $result->bindValue(':interventi_traumi', $interventiTraumi, PDO::PARAM_STR); 
     $result->bindValue(':traumi_altro', $interventiTraumiAltro, PDO::PARAM_STR); 
     $result->bindValue(':traumi_data', $interventiTraumiData, PDO::PARAM_STR); 
     $result->bindValue(':attuali_nome', $sintomiAttualiNome, PDO::PARAM_STR); 
     $result->bindValue(':attuali_nomea', $sintomiAttualiNomeAltro, PDO::PARAM_STR); 
     $result->bindValue(':attuali_frequenza', $sintomiAttualiFrequenza, PDO::PARAM_STR); 
     $result->bindValue(':attuali_durata', $sintomiAttualiDurata, PDO::PARAM_STR); 
     $result->bindValue(':attuali_intensita', $sintomiAttualiIntensita, PDO::PARAM_STR); 

     $result->bindValue(':colazione', $alimQuotidColazione, PDO::PARAM_STR); 
     $result->bindValue(':colazione_bevande', $alimQuotidColazioneBevande, PDO::PARAM_STR); 
     $result->bindValue(':colazione_alimenti', $alimQuotidColazioneAlimenti, PDO::PARAM_STR); 
     $result->bindValue(':merenda', $alimQuotidMerenda, PDO::PARAM_STR); 
     $result->bindValue(':merenda_bevande', $alimQuotidMerendaBevande, PDO::PARAM_STR); 
     $result->bindValue(':merenda_alimenti', $alimQuotidMerendaAlimenti, PDO::PARAM_STR); 
     $result->bindValue(':pranzo', $alimQuotidPranzo, PDO::PARAM_STR); 
     $result->bindValue(':pranzo_bevande', $alimQuotidPranzoBevande, PDO::PARAM_STR); 
     $result->bindValue(':pranzo_alimenti', $alimQuotidPranzoAlimenti, PDO::PARAM_STR); 
     $result->bindValue(':pomeridiano', $alimQuotidPomeridiano, PDO::PARAM_STR); 
     $result->bindValue(':pomeridiano_bevande', $alimQuotidPomeridianoBevande, PDO::PARAM_STR); 
     $result->bindValue(':pomeridiano_alimenti', $alimQuotidPomeridianoAlimenti, PDO::PARAM_STR); 
     $result->bindValue(':cena', $alimQuotidCena, PDO::PARAM_STR); 
     $result->bindValue(':cena_bevande', $alimQuotidCenaBevande, PDO::PARAM_STR); 
     $result->bindValue(':cena_alimenti', $alimQuotidCenaAlimenti, PDO::PARAM_STR); 

     $result->execute(); 
1

あなたはこのクエリは正しい(あるいは、少なくとも私ドンではありませんあなたはparameters.Pleaseチェックの不一致を持っていることを意味する、あなたのbindParamsの一つにタイプミスがあり、

を確認することができますUPDATEクエリで制限を使用する方法を知っている)だから、クエリからLIMIT 1を削除して、あなたは、クエリで名前past_data_fineで使用しているが結合しているときにpast_dataFineとして変数を使用

再試行してください。そう repalceあなたのライン:

$result->bindValue(':past_data_fine', $malattiaPastDataFine, PDO::PARAM_STR); 
+0

試してみましたが、問題を修正していません... – Fetz

+0

更新された回答を確認し、質問からLIMIT 1を削除して試してみてください。 –

+0

LIMIT 1は問題ありませんでした。 – Fetz

関連する問題