if(isset($_GET['id'])){$dopSqlid = "WHERE `id` = '$_GET[id]'";}
Ну, во-первых, так делать нельзя, запрос уязвим к sql-инъекции. Если у БД достаточно прав - прощай сайт, т. к. загрузят web shell. Даже если есть ограничение прав - прощай БД.
Используй Prepared Statements (как ты их назвал - подготовленные запросы).
Некоторые источники для MySQLi:
1)
http://php.net/manual/en/mysqli.quickstart.prepared-statements.php2)
https://www.w3schools.com/php/php_mysql_prepared_statements.aspИсточники для PDO:
1)
http://php.net/manual/en/pdo.prepared-statements.php2)
https://websitebeaver.com/php-pdo-prepared-statements-to-prevent-sql-injection» Да, так можно сделать. Но когда это только одна переменная. А когда их много. Какая же огромная получится конструкция if/else? «
Вот этого не понял, подробнее
if(isset($_GET['id'])){$dopSqlid = "WHERE `id` = '$_GET[id]'";}
$test= mysqli_query($db, "SELECT * FROM `users` $dopSqlid");
т. е. Если данная переменная $_GET['id'] существует то в SQL встраивалась доп часть SQL. Всякие фильтры сортировки и т. д.
Понятно что код приведенный выше фуфло и подвержен SQL инъекциям. Но это лишь пример для того чтобы понять суть.
Теперь я начал использовать ORM RedBean и подготовленные запросы. И встал в ступор как составить правильно запрос из нескольких. Неужели необходимо делать что-то вроде этого:
if(isset($_GET['id'])){
$test= R::find("users","id = :id", [':id' => $_GET[id]]);
}else{
$test= R::find("users","", []);
}
Да, так можно сделать. Но когда это только одна переменная. А когда их много. Какая же огромная получится конструкция if/else?
В общем я в ступоре.