Wpis z mikrobloga

$status = 'deleted';
$data = 'DESC';

$stmt = $pdo->prepare('SELECT * FROM komunikaty WHERE status_komunikatu NOT LIKE ? ORDER BY data_komunikatu ?');
$stmt->bindValue(1, $status);
$stmt->bindValue(2, $data);
$stmt->execute();

while ($row = $stmt->fetch(PDO::FETCH_ASSOC))
{
echo $row['id_komunikatu'];

}

Dlaczego to mi nic nie wypisuje? z PDO łącze się wcześniej i połączenie zostaje nawiązane.
execute() zwraca mi false :(

#webdev #php #mysql
  • 7
@jaskowice1: A przypadkiem ten drugi argument nie jest przekazywany jako string czyli "DESC"? Bo jak tak, to MySQL go nie rozpozna jako sortowanie DESC tylko jako jakiś ciąg znaków i nie ważne, że to DESC.

Nie wiem, czy to dobra praktyka, ale może lepiej wstawić go tam na sztywno?
Jeżeli jest on pobierany z get to w dużym skrócie zrób coś takiego (pomijając, że trzeba walidować input za pomocą filterinput())
@jaskowice1: Tylko upewnij się, że:

a.) masz zahardkodowane w zapytaniu tak jak teraz podałeś
b.) jeśli przychodzi od użytkownika to KONIECZNIE zwaliduj, że jest to ASC albo DESC (tak jak podpowiada @panDocent) – uważaj na sql–injection