Komunikat: blad db : SQLSTATE[42000]: Syntax error or access violation: 1064 You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '( `id_pan`, `nazwa_en`, `nazwa_de`, `nazwa_fr`, `nazwa_esp`, `nazwa_pl`, `opinia' at line 1
ewentualnie komunikat typu: blad db : SQLSTATE[HY093]: Invalid parameter number: number of bound variables does not match number of tokens
Sprawdziłem ilość parametrów (wykonałem opcję z dodaniem id_mia i bez id_mia , - to parametr który wskazuje mi miejsce edycji danych w bazie.
Dokonałem sprawdzenia typów zmiennych wejściowych (zgadzają się) oraz przeprowadziłem próbę na bindValue oraz bindParam
Gdzie popełniam błąd? Proszę o pomoc.
kod funkcji:
public function AktualizujMiasto($polaczenie,$id_pan,$id_mia,$nazwa_en,$nazwa_de,$nazwa_fr,$nazwa_esp,$nazwa_pl,$opinia_pl,$opinia_en,$status,$y,$x,$data1,$data2,$data3) { try { $this->polaczenie=$polaczenie; $this->id_pan=$id_pan; $this->id_mia=$id_mia; $this->nazwa_pl=$nazwa_pl; $this->nazwa_en=$nazwa_en; $this->nazwa_de=$nazwa_de; $this->nazwa_fr=$nazwa_fr; $this->nazwa_esp=$nazwa_esp; $this->opinia_pl=$opinia_pl; $this->opinia_en=$opinia_en; $this->status=$status; $this->y=$y; $this->x=$x; $this->data1=$data1; $this->data2=$data2; $this->data3=$data3; $stmt = $this->polaczenie->prepare('UPDATE `miasto` ( `id_pan`, `nazwa_en`, `nazwa_de`, `nazwa_fr`, `nazwa_esp`, `nazwa_pl`, `opinia_pl`, `opinia_en`, `status`, `y`, `x`, `data1`, `data2`, `data3`) VALUES ( :id_pan, :nazwa_en, :nazwa_de, :nazwa_fr, :nazwa_esp, :nazwa_pl, :opinia_pl, :opinia_en, :status, :y, :x, :data1, :data2, :data3) WHERE `id_mia` =: id_miasta '); /* $stmt->bindValue(':id_miasta', $this->id_mia, PDO::PARAM_INT); $stmt->bindValue(':id_pan', $this->id_pan, PDO::PARAM_INT); // STR - ԡh $stmt->bindValue(':nazwa_en', $this->nazwa_en, PDO::PARAM_STR, 100); // STR - ԡh $stmt->bindValue(':nazwa_de', $this->nazwa_de, PDO::PARAM_STR, 100); // STR - ԡh $stmt->bindValue(':nazwa_fr', $this->nazwa_fr, PDO::PARAM_STR, 100); // STR - ԡh $stmt->bindValue(':nazwa_esp', $this->nazwa_esp, PDO::PARAM_STR, 100); // STR - ԡh $stmt->bindValue(':nazwa_pl', $this->nazwa_pl, PDO::PARAM_STR, 100); // STR - ԡh $stmt->bindValue(':opinia_pl', $this->opinia_pl, PDO::PARAM_STR, 400); // STR - ԡh $stmt->bindValue(':opinia_en', $this->opinia_en, PDO::PARAM_STR, 400); // STR - ԡh $stmt->bindValue(':status', $this->status, PDO::PARAM_INT, 3); $stmt->bindValue(':y', $this->y, PDO::PARAM_STR,10); $stmt->bindValue(':x', $this->x, PDO::PARAM_STR,10); $stmt->bindValue(':data1', $this->data1, PDO::PARAM_STR, 40); // STR - ԡh $stmt->bindValue(':data2', $this->data2, PDO::PARAM_STR, 40); // STR - ԡh $stmt->bindValue(':data3', $this->data3, PDO::PARAM_STR, 40); // STR - ԡh */ $stmt->bindValue(':id_miasta', $this->id_mia, PDO::PARAM_INT); $stmt->bindParam(':id_pan', $this->id_pan, PDO::PARAM_INT); // STR - ԡh $stmt->bindParam(':nazwa_en', $this->nazwa_en, PDO::PARAM_STR, 100); // STR - ԡh $stmt->bindParam(':nazwa_de', $this->nazwa_de, PDO::PARAM_STR, 100); // STR - ԡh $stmt->bindParam(':nazwa_fr', $this->nazwa_fr, PDO::PARAM_STR, 100); // STR - ԡh $stmt->bindParam(':nazwa_esp', $this->nazwa_esp, PDO::PARAM_STR, 100); // STR - ԡh $stmt->bindParam(':nazwa_pl', $this->nazwa_pl, PDO::PARAM_STR, 100); // STR - ԡh $stmt->bindParam(':opinia_pl', $this->opinia_pl, PDO::PARAM_STR, 400); // STR - ԡh $stmt->bindParam(':opinia_en', $this->opinia_en, PDO::PARAM_STR, 400); // STR - ԡh $stmt->bindParam(':status', $this->status, PDO::PARAM_INT, 3); $stmt->bindParam(':y', $this->y, PDO::PARAM_STR,10); $stmt->bindParam(':x', $this->x, PDO::PARAM_STR,10); $stmt->bindParam(':data1', $this->data1, PDO::PARAM_STR, 40); // STR - ԡh $stmt->bindParam(':data2', $this->data2, PDO::PARAM_STR, 40); // STR - ԡh $stmt->bindParam(':data3', $this->data3, PDO::PARAM_STR, 40); // STR - ԡh $ilosc = $stmt -> execute(); if($ilosc > 0) { $_SESSION['info']='edycja miasta powiodła się '; } else { $_SESSION['info']='problem z edycją miasta'; } } catch(PDOException $e) { } }