Исходный код
$result = doquery("SELECT * FROM {{table}} WHERE username='".$username."';",users,true);
$username = $result['username'];
unset($result);
Что не так в исходном коде
Не очень ясен смысл операции — получить имя пользователя по имени пользователя.
Предполагаю, что на входе есть имя пользователя регистронезависимое, и требуется получить имя в точности в том регистре, как оно прописано в БД.
Даже при таком раскладе в исходном коде есть несколько слабых мест.
- Имя пользователя подставляется в запрос напрямую — это риск SQL-инъекции.
- Название таблицы
users
не заключено в кавычки, это работает, но изподвыверта. Возможно, это сделано намеренно, а константаusers
определена где-то выше, но тогда надо хотя бы константу оформить заглавными буквами, как принято. - Из базы вытаскивается вся запись целиком, а используется только одно поле. Предполагаю, что другая информация о пользователе используется где-то в других местах кода, поэтому есть смысл сохранить всю запись.
- Если точно не нужна больше никакая информация о пользователе, то нет смысла дёргать все поля, разумнее сделать получение только нужного поля:
SELECT username
.