AND w SELECT

S1
  • Rejestracja:prawie 7 lat
  • Ostatnio:prawie 5 lat
  • Postów:31
0
Kopiuj
$pozycja = $mysqli->query("SELECT * FROM tabela WHERE kod_produktu = '".$value."' AND user = '".$_SESSION['user']."' AND data = '".$data."'");

Nie wiem dlaczego ale moje słowa AND w tym zapytaniu do bazy w programie sublime text 3 pojawiają się na żółto a zawsze były czerwone, sprawdzałem te cudzysłowy i apostrofy i wszystko powinno być ok, a tu kiszka, pomożecie??

Patryk27
Moderator
  • Rejestracja:ponad 17 lat
  • Ostatnio:ponad rok
  • Lokalizacja:Wrocław
  • Postów:13042
1

Przypuszczam. że Sublime średnio sobie radzi z formatowaniem ręcznie sklejanych zapytań (podobnie jak zresztą większość znanych mi środowisk) - przerzuć się na bindowanie (Google: mysqli bind parameters), a będzie dobrze.

Dodatkowa lektura: SQL injection.


edytowany 2x, ostatnio: Patryk27
Piotrek Nero
  • Rejestracja:prawie 7 lat
  • Ostatnio:ponad 6 lat
  • Postów:20
0

Najprostsze co można zrobić, choć pewnie jest lepsze wyjście to zamienić na

Kopiuj
$pozycja = $mysqli->query("SELECT * FROM tabela WHERE kod_produktu = '{$value}' AND user = '{$_SESSION['user']}' AND data = '{$data}'");
edytowany 2x, ostatnio: Piotrek Nero
S1
  • Rejestracja:prawie 7 lat
  • Ostatnio:prawie 5 lat
  • Postów:31
0
Piotrek Nero napisał(a):

Najprostsze co można zrobić, choć pewnie jest lepsze wyjście to zamienić na

Kopiuj
$pozycja = $mysqli->query("SELECT * FROM tabela WHERE kod_produktu = '$value' AND user = '$_SESSION['user']' AND data = '$data'");

to nie bedzie bo sie pluje o te zmienne one powinny byc z kropkami i cudzyslowami i apostrofami, a jesli tak zrobie AND jest dalej żółte i teraz nie wiem czy mam to dobrze czy nie to zapytanie

SG
  • Rejestracja:ponad 8 lat
  • Ostatnio:ponad 5 lat
  • Postów:103
0

Przecież samo podświetlenie składni jakiegokolwiek języka nie może być wyznacznikiem tego czy kod jest dobry czy nie. Inna sprawa, że tym zapytaniu masz dużo większe problemy niż źle podświetlony AND.

S1
  • Rejestracja:prawie 7 lat
  • Ostatnio:prawie 5 lat
  • Postów:31
0

mam żłe zapytanie?

Piotrek Nero
  • Rejestracja:prawie 7 lat
  • Ostatnio:ponad 6 lat
  • Postów:20
0

Jak już Patryk27 wspomniał - SQL injection oraz mysqli bind parameters. Zapoznaj się z taką tematyką :)

noHumanus
  • Rejestracja:ponad 8 lat
  • Ostatnio:ponad rok
  • Lokalizacja:Rzeszów
  • Postów:51
0
Kopiuj
pozycja = $mysqli->query("SELECT * FROM tabela WHERE `kod_produktu` = '{$value}' AND `user` = '{$_SESSION['user']}' AND `data` = '{$data}'");

możesz zaznaczyć ` że to pola tabeli a nie słowa kluczowe SQLa, a o SQL injection warto pamiętać :)


Staram się pisać po Polsku ale jak nie wychodzi odczytanie tą metodą proszę spróbować bardziej fonetycznie, a jeśli i to nie wychodzi to pewnie świeciło się na czerwono i wybrałem z listy poprawnych ortograficznie słów takie które akurat nie mają sensu w tym kontekście,
edytowany 1x, ostatnio: noHumanus

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.