AND w SELECT

0
$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??

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.

0

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

$pozycja = $mysqli->query("SELECT * FROM tabela WHERE kod_produktu = '{$value}' AND user = '{$_SESSION['user']}' AND data = '{$data}'");
0
Piotrek Nero napisał(a):

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

$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

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.

0

mam żłe zapytanie?

0

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

0
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ć :)

1 użytkowników online, w tym zalogowanych: 0, gości: 1