Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: problemy z bindParam i bindValue
Forum PHP.pl > Forum > PHP > Object-oriented programming
pakosphp
Pomimo moich usilnych starań nie moge podpiąć danych do zapytania
kod:
  1. <?php
  2. $stmt = $db->prepare('INSERT INTO szczegoly_projektu (IDprojektu,Data,OpisPozycjiProjektu,Czas_Koszt) VALUES(IDprojektu=? ,Data=? ,OpisPozycjiProjektu=? ,Czas_Koszt=?)');
  3. $stmt -> bindParam(1, 17);
  4. $stmt -> bindParam(3, 17);
  5. $stmt -> bindParam(3, 17);
  6. $stmt -> bindParam(4, 17);
  7. $stmt -> execute();
  8. ?>

otrzymuje odpowiedz: Fatal error: Cannot pass parameter 2 by reference in...

probowalem tez tak:
  1. <?php
  2. $stmt = $db->prepare('INSERT INTO szczegoly_projektu (IDprojektu,Data,OpisPozycjiProjektu,Czas_Koszt) VALUES(IDprojektu= :IDprojektu,Data= :Data,OpisPozycjiProjektu= :OpisPozycjiProjek
    tu,Czas_Koszt= :Czas_Koszt)'
    );
  3. $stmt -> bindValue(':IDprojektu', 17, PDO::PARAM_INT);
  4. $stmt -> bindValue(':Data', 17, PDO::PARAM_INT);
  5. $stmt -> bindValue(':OpisPozycjiProjektu', 17, PDO::PARAM_STR);
  6. $stmt -> bindValue(':Czas_Koszt', 17, PDO::PARAM_INT);
  7. $stmt -> execute();
  8. ?>

nie ma błedów dodaje wiersz do bazy ale wszystkie wartości są 0

Nie mam pojęcia gdzie robie błąd patrze w ten kod i już dostaje oczoplasów. Pomocy rodacy.
dr_bonzo
Nie mozesz przypinac wartosci (jak 17, "string", itp), tylko ZMIENNE, w ten sposob:

  1. <?php
  2. $x = 17;
  3. $stmt -> bindValue(':IDprojektu', $x, PDO::PARAM_INT);
  4. ?>

tzn ta poprzednia wersja tez mozesz -- najwazniejsze jest przekazanie zmiennej a nie wartosci
pakosphp
Dzieki dr_bonzo
Jak już ten temat poruszyłem to jeszcze sie spytam czy parametry bindValue mogą wyglądać tak:
  1. <?php
  2. $x = 17;
  3. $x_2 = 3;
  4. $y = 'Opis';
  5.  
  6. $stmt -> bindValue(':'.$y.'projektu', $x+$x_2, PDO::PARAM_INT);
  7. //--co da------------ ':Opisprojektu', $(10)
  8. ?>
NuLL
pakosphp - a czemu nie questionmark.gif smile.gif
pakosphp
Nie wiem czemu bindValue niechce dzialac mi poprawnie ale na szczescie bindParam dziala.
błąd robiłem zdaje sie w samym zapytaniu
  1. <?php
  2. VALUES(IDprojektu=,Data=,OpisPozycjiProjektu=,Czas_Koszt=?)
  3. ?>

zadzialalo jak zrobilem tak
  1. <?php
  2. VALUES(,,,?)
  3. ?>
dr_bonzo
NO tak, nie zwrocilem uwagi na poprawnosc zapytania (bylo dostepne dopiero po przewinieciu kodu) -- po prostu blad skladni SQL.
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.