Ecto gebruikt alleen voorbereide verklaringen. Bij gebruik van de ecto-querysyntaxis is het invoeren van SQL-injectie niet mogelijk. De querysyntaxis verifieert tijdens het compileren dat er geen SQL-injectie mogelijk is.
Het exact weergeven van de uitgevoerde zoekopdrachten kan om een aantal redenen moeilijk zijn:
- Postgrex (en dus Ecto) gebruikt het postgresql binaire protocol (in plaats van het meest gebruikelijke, maar minder efficiënte, tekstprotocol), dus de
PREPARE
query bestaat nooit echt als een tekenreeks. - In de meeste gevallen ziet u alleen een eerste
PREPARE 64237612638712636123(...) AS ...
en later veelEXECUTE 64237612638712636123(...)
wat niet zo handig is. Proberen om een relatie met elkaar aan te gaan zou verschrikkelijk zijn.
Mijn ervaring is dat de meeste van dit soort software 'prepareer'-statements gebruiken en ze loggen in plaats van onbewerkte query's, omdat het veel nuttiger is om het gedrag van het systeem te begrijpen.