Использование константы в bindParam PHP

Как я могу использовать Константу вместо переменной при подготовке запроса в bindParam? [SQLite3] PHP version 8.1

const USER_ID = "1234"; // constant
$result = selectAll();
echo print_r($result);

function selectAll () {
    $sql = "SELECT * FROM `reqClan` WHERE `id` = :id";
    $sqlPrepare = $db->prepare($sql);
    $sqlPrepare->bindParam(':id', USER_ID); // <--- THIS! USER_ID - is constant!
    $result = $sqlPrepare->execute()->fetchArray(SQLITE3_ASSOC);

    return $result;
}

Я знаю что могу перед обращением к SQLite3 добавить переменную и к ней присвоить значение константы, а уже после использовать переменную ля запроса к БД, но к сожалению, мне бы хотелось использовать Константу в запросах, конечно, если это вообще возможно.

Дело в том, что у меня довольно много функций, и хотелось бы реализовать это через константу, без передачи еще одного параметра в функцию $user_id


Ответы (1 шт):

Автор решения: Алексей Шиманский

С bindParam вряд ли получится, поэтому проще будет использовать bindValue при таком подходе.


Но, хочу сказать, такой подход через глобальные переменные, пусть и константы - не очень. Раз метод манипулирует какими-то данными внутри, которые задаются откуда-то, то этот метод должен иметь параметры и нужно передвать данные туда. Тогда можно будет и переменную спокойно биндить и константу передавать в метод в качестве аргумента.

А в текущем подходе будет так: когда придёт время поменять данные на динамические - будет очередной геморрой по переделке кода

→ Ссылка