Du baust auch noch das Statement mit Ausdrücken zusammen, die vorher beim Benutzer waren. Das ist schon nicht mal mehr als SQL-Injection-Fehler sondern als grob fahrlässig einzustufen. Damit kann man dein Statement nahezu beliebig manipulieren.
In wievern?
Der Nutzer kann natürlich so den Filter manipulieren, dies hat allerdings nur Einfluss auf den Teil hinter dem "WHERE", ergo das einzige was passieren könnte ist das er beliebige Daten ausgibt und da dies schon vom Filter her möglich ist, sehe ich da kein Problem. Zumal in der Tabelle lediglich Pflanzen und ihre Bestimmungsmerkmale abgespeichert sind und alle nicht öffentlichen Daten in einer separaten Datenbank abgespeichert sind.