Загадочное получение из БД значения, которое уже есть в переменной


Исходный код

$result = doquery("SELECT * FROM {{table}} WHERE username='".$username."';",users,true);
$username = $result['username'];
unset($result);

Что не так в исходном коде

Не очень ясен смысл операции — получить имя пользователя по имени пользователя.

Предполагаю, что на входе есть имя пользователя регистронезависимое, и требуется получить имя в точности в том регистре, как оно прописано в БД.

Даже при таком раскладе в исходном коде есть несколько слабых мест.

  1. Имя пользователя подставляется в запрос напрямую — это риск SQL-инъекции.
  2. Название таблицы users не заключено в кавычки, это работает, но изподвыверта. Возможно, это сделано намеренно, а константа users определена где-то выше, но тогда надо хотя бы константу оформить заглавными буквами, как принято.
  3. Из базы вытаскивается вся запись целиком, а используется только одно поле. Предполагаю, что другая информация о пользователе используется где-то в других местах кода, поэтому есть смысл сохранить всю запись.
  4. Если точно не нужна больше никакая информация о пользователе, то нет смысла дёргать все поля, разумнее сделать получение только нужного поля: SELECT username.