konto usunięte

Temat: Zapytanie SQL ze zmienna

W jaki sposób moge przekazac parametr (np z $_SESSION) do zapytania SQL?
Mam np cos takiego

SELECT pracownikID, imie, nazwisko
FROM pracownicy
WHERE " .$_SESSION['UserName']." = pracownicy.imie;

i wynik ktory dostaje to "unkown colum "Dane_imie" in where clause

jak to zmienic, zeby .$_SESSION['UserName']. nie była traktowana jako kolumna a raczej wartosc do przyrównania?

Pozdrawiam

Temat: Zapytanie SQL ze zmienna

"SELECT pracownikID, imie, nazwisko
FROM pracownicy
WHERE pracownicy.imie =".$_SESSION['UserName'];

A jeśli to tekst to proponowałbym

"SELECT pracownikID, imie, nazwisko
FROM pracownicy
WHERE pracownicy.imie LIKE".$_SESSION['UserName'];

Temat: Zapytanie SQL ze zmienna

Zamień kolejność:

SELECT pracownikID, imie, nazwisko
FROM pracownicy
WHERE pracownicy.imie = ".$_SESSION['UserName']."

...
Bartosz Ślepowronski

Bartosz Ślepowronski Problem? Jaki
problem?

Temat: Zapytanie SQL ze zmienna

Ale w czym? PHP?

Bo temat sugeruje zwykla zmienna TSQL, PLSQL, etc, a przyklad wyglada na PHP.

konto usunięte

Temat: Zapytanie SQL ze zmienna

Tak, przepraszam ze nie wspomnialem jest to PHP.
Cala linia wyglada teraz tak:

$query_rsPracownicy = "SELECT pracownikID, imie, nazwisko FROM pracownicy WHERE pracownicy.imie=".$_SESSION['UserName']."";

i dalej nie chodzi....
Marcin Samiczak

Marcin Samiczak senior software
performance
engineer, Sabre
Polska Sp. z ...

Temat: Zapytanie SQL ze zmienna

moze tak..

$query_rsPracownicy = "SELECT pracownikID, imie, nazwisko FROM pracownicy WHERE pracownicy.imie='".$_SESSION['UserName']."'";

konto usunięte

Temat: Zapytanie SQL ze zmienna

Marcin Samiczak:
moze tak..

$query_rsPracownicy = "SELECT pracownikID, imie, nazwisko FROM pracownicy WHERE pracownicy.imie='".$_SESSION['UserName']."'";

Tak teraz chodzi! Dziekuje serdecznie.
Pozdrawiam!
Bartosz Ślepowronski

Bartosz Ślepowronski Problem? Jaki
problem?

Temat: Zapytanie SQL ze zmienna

To moze prosciej bedzie spytac na grupie PHP, bo przeciez chodzi o to zeby prawidlowo parsowac (tak sie to pisze? sorry, jestem humanista ;)) zapytanie ktore wysylasz do bazy, sama baza nei ma tu nic do rzeczy.

Sprobuj wywalic cudzyslow, u mnie dziala tak:

$query_rsPracownicy = "SELECT pracownikID, imie, nazwisko FROM pracownicy WHERE pracownicy.imie=$_SESSION['UserName']";

Ewentualnie

$_SESSION['UserName'] = $username;

$query_rsPracownicy = "SELECT pracownikID, imie, nazwisko FROM pracownicy WHERE pracownicy.imie=$username";

konto usunięte

Temat: Zapytanie SQL ze zmienna

Jak dla mnie minimum 2 posty miały błąd.. ale nie będę się wtrącał... Jeżeli parametry przychodzą z zewnątrz to pewnie warto zastosowac :
http://pl2.php.net/manual/en/mysqli.prepare.php

:-)
Bartosz Ślepowronski

Bartosz Ślepowronski Problem? Jaki
problem?

Temat: Zapytanie SQL ze zmienna

Rafal, wtracaj sie prosze, komentuj, wytykaj bledy. Ja np. jestem zawsze wdzieczny jak ktos mi wytlumaczy co robie zle i wskaze prawidlowe rozwiazanie :)

konto usunięte

Temat: Zapytanie SQL ze zmienna

albo mysql_real_escape_string co najmniej:
http://pl2.php.net/manual/en/function.mysql-real-escap...
Maciej W.

Maciej W. a czy ty masz swój
ręcznik?...

Temat: Zapytanie SQL ze zmienna

błąd polega na tym, że jeśli nie podajesz zmiennej w cudzysłowie bądź w apostrofach to on to traktuje jak inną kolumnę. Poprawnie zapytanie powinno wyglądać tak:

"SELECT pracownikID, imie, nazwisko
FROM pracownicy
WHERE pracownicy.imie ='".$_SESSION['UserName']."'";

lub

"SELECT pracownikID, imie, nazwisko
FROM pracownicy
WHERE pracownicy.imie ='{$_SESSION[UserName]}'";

pozdro
Bartosz Ślepowronski

Bartosz Ślepowronski Problem? Jaki
problem?

Temat: Zapytanie SQL ze zmienna

Na czym ma polegac traktowanie zmiennej jak kolumny? W sensie ze szuka kolumny $zmienna ktora nie istnieje?

Nie uwazam sie za eksperta, raz w zyciu napisalem cos w PHP bo musialem, bylo to dawno i nie prawda, ale dzialalo doskonale bez cudzyslowow :)

O cos takiego:

query = "select c.CLIENT_DESC, p.project_code, r.resource_name
from project p, resourc r, client c
where p.PROJ_COMPLETE = 'N'
and p.PROJECT_CATEGORY_ID = 17
and p.project_code not like 'DELI%'
and p.PROJ_MGR_ID = r.resource_id
and p.PROJ_MGR_ID = $mngr
and c.client_id = p.client_id
order by p.project_code";

$sql = oci_parse($conn, $query);
oci_execute($sql);

Na zywca wyjete z kodu strony. Jak sie tak patrze na zapytania to niektore zmienne sa w apostrofach, wtedy jesli jest na nich jakas funkcja wykonywana. A reszta tak jak w powyzszym zapytania.Bartosz Ślepowroński edytował(a) ten post dnia 13.05.08 o godzinie 16:35

konto usunięte

Temat: Zapytanie SQL ze zmienna

Jeszcze raz dziekuje za pomoc, tak jak napisalem wczesniej, zaczelo mi chodzi po poscie Marcina (brakowało cudzysłowów).

Pozdrawiam!

konto usunięte

Temat: Zapytanie SQL ze zmienna

Bartosz Ślepowroński:
Na zywca wyjete z kodu strony. Jak sie tak patrze na zapytania to niektore zmienne sa w apostrofach, wtedy jesli jest na nich jakas funkcja wykonywana. A reszta tak jak w powyzszym zapytania.

Działa, bo przekazujesz pewnie numerek (integer). Z łańcuchem nie ma prawa działać.
Bartosz Ślepowronski

Bartosz Ślepowronski Problem? Jaki
problem?

Temat: Zapytanie SQL ze zmienna

Piotr Likus:
Działa, bo przekazujesz pewnie numerek (integer). Z łańcuchem nie ma prawa działać.

Ok, to ma sens. Faktycznie wszedzie gdzie jest string mam ''. Pisalem to pare lat temu i szczerze mowiac nie pamietam dlaczego pewne rzeczy sa napisane tak a nie inaczej. Dzieki :)

konto usunięte

Temat: Zapytanie SQL ze zmienna

Bartosz Ślepowroński:
Ewentualnie

$_SESSION['UserName'] = $username;

$query_rsPracownicy = "SELECT pracownikID, imie, nazwisko FROM pracownicy WHERE pracownicy.imie=$username";

Pewnie się przyda, p. Rafał już na to zwrócił uwagę ale tutaj może lepiej jest to opisane:

http://pl.wikipedia.org/wiki/SQL_injection

konto usunięte

Temat: Zapytanie SQL ze zmienna

Marcin Stępnicki:
Bartosz Ślepowroński:
Ewentualnie

$_SESSION['UserName'] = $username;

$query_rsPracownicy = "SELECT pracownikID, imie, nazwisko FROM pracownicy WHERE pracownicy.imie=$username";

Pewnie się przyda, p. Rafał już na to zwrócił uwagę ale tutaj może lepiej jest to opisane:

http://pl.wikipedia.org/wiki/SQL_injection
;-)

Następna dyskusja:

[SQL] Zapytanie TSQL z wyko...




Wyślij zaproszenie do