Mysql
 sql >> Baza danych >  >> RDS >> Mysql

jak sprawdzić ciąg znaków obecny w kolumnie bazy danych?

Twoja konkatenacja ciągów jest pomieszana, powinno być:(dalsze uproszczenie )

$selDoc="SELECT * FROM documents WHERE 'U".$_SESSION['userId']."' IN (senderID,receiver_id) ORDER BY id DESC";

kiedy powyższe stwierdzenie zostanie przeanalizowane, będzie wyglądać tak:

SELECT * 
FROM   documents 
WHERE  'UXX' IN (senderID,receiver_id)  // where XX is the userID
ORDER  BY id DESC

Na marginesie, zapytanie jest podatne na SQL Injection jeśli wartość (s ) zmiennych pochodziło z zewnątrz. Zapoznaj się z poniższym artykułem, aby dowiedzieć się, jak temu zapobiec. Używając PreparedStatements możesz pozbyć się pojedynczych cudzysłowów wokół wartości.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Jak zarządzać połączeniami DB tylko do odczytu na poziomie aplikacji?

  2. Podziel dane na 3 kolumny

  3. pole tekstowe typu wejściowego dające naprawiony błąd 2147483647

  4. Duplikuj, kopiuj lub twórz kopie zapasowe tabel w MySQL, MariaDB, Oracle, PostgreSQL, DB2 i SQLite za pomocą funkcji Utwórz tabelę jako SQL

  5. Dlaczego zapytania UNION są tak wolne w MySQL?