Cześć. Zaczynam przygodę z PDO i podczepianiem więc proszę o wyrozumiałość. Przy próbie UPLOADowania danych napotykam na problem.
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 tokensSprawdził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
bindParamGdzie 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)
{
echo 'blad db : ' . $e->getMessage(); }
}
Ten post edytował jeremiash 15.12.2012, 19:37:48