Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP]PDO zapisanie zapytanie do pliku (SELECT, INSERT)
Forum PHP.pl > Forum > Przedszkole
kielich
Witam,
Mam pewien problem mianowicie chce zapisać zapytanie (treść) do pliku

w takiej postaci
  1. $insert = $pdo -> prepare('INSERT INTO imiona (imie) VALUES(:imie');
  2. $insert -> bindValue(':imie', $_POST['imie'], PDO::PARAM_STR);


Wszystko się zapisuje ale jest mały problem :
zapisana wartośc to

  1. INSERT INTO imiona (imie) VALUES(:imie)


A ja potrzebował bym zwykłego zapytania, mianowicie
  1. INSERT INTO imiona (imie) VALUES('Basia')


Jak tego dokonać questionmark.gif
!*!
Jak to zapisujesz i głównie w jakim celu, tym bardziej że bindujesz wartość?
b4rt3kk
Zapytanie masz błędne.

  1. $insert = $pdo -> prepare('INSERT INTO imiona (imie) VALUES (:imie)');
  2. $insert -> bindValue(':imie', $_POST['imie'], PDO::PARAM_STR);
  3. $insert -> execute();
d3ut3r
Generalnie nie jesteś wstanie dostać zbindowanego zapytania, tutaj jest wpis na którym autor proponuje rozwiązanie alternatywne, tyle że jak dla mnie to przerost formy nad treścią. Równie dobrze dla celów debugowania (choć rzadko jest to potrzebne o czym za chwilę smile.gif ) możesz zrobić tak:

  1. $insert = $pdo -> prepare('INSERT INTO imiona (imie) VALUES(:imie');
  2. $insert -> bindValue(':imie', $_POST['imie'], PDO::PARAM_STR);
  3.  
  4. echo 'Zapytanie: INSERT INTO imiona (imie) VALUES('.$pdo->quote($_POST['imie'],PDO::PARAM_STR).');';
  5.  


Dlaczego zbindowane zapytanie nie jest potrzebne ? w zasadzie jeżeli istnieje problem z zapytaniem to nie jest to problem z parametrami więc wartość tych parametrów nie ma znaczenia i możesz wpisać tam cokolwiek ważne tylko aby zgadzał się typ.

Czyli jeżeli masz:
  1. SELEKT * FROM tablica WHERE id=:id


to w zasadzie wartość :id nie ma znaczenia błąd jest w składni.
kielich
No dobrze d3ut3r
Ale jeśli mam zapytanie nie tylke z imieniem ale też innymi 20 polami to forma też przeraża ilościa i praca bo muszę to poskładac dla zapytania no i dla zapisu formy do pliku.... ?
d3ut3r
W skrócie tak smile.gif ewentualnie możesz skorzystać z linku który, podesłałem w czystym PDO taka funkcjonalność jakiej potrzebujesz nie istnieje.
Crozin
1. Bindowanie nie działa na zasadzie łączenia przefiltrowanych parametrów z zapytaniem, stąd raczej nie uzyskasz - zresztą nawet nie powinieneś - takiej formy zapytania.
2. Zapisuj sobie zapytanie i połączone z nim parametry, np. w formacie JSON:
  1. QUERY: SELECT col_name, another_col_name FROM tbl_name WHERE col_name = :param AND abc_col_name = :param2;
  2. PARAMS: { "param": "hello!", "param2": 123 }
3. Możesz skorzystać z gotowych nakładek na PDO, np. Doctrine DBAL, które udostępniają taką funkcję.
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.