Да, отделить весь код интерфейса базы данных. Это рекомендуемая практика. Это помогает многократному использованию, удобочитаемости, а также отделяет логику вашего приложения от обработки хранилища данных. Кроме того, при этом обычно не снижается производительность.
Теоретическое преимущество заключается в том, что вы можете перейти на другую методологию базы данных, если все ваши функциональные возможности будут удалены. На практике сложно перейти от бэкэнда SQL, но, по крайней мере, ваш API позволит это сделать.
Два замечания: вы никогда не сможете удалить всех запросов к базе данных. Часто существуют ограничения производительности или параметров, в которых имеет смысл сохранять смешанные запросы SQL в коде вашего приложения. Но постарайся выйти так, как ты считаешь разумным.
Второе: попробуйте удалить mysql_query. Это не только проще, но и более безопасно использовать PDO (который также существует в эмуляции PHP4). Например, ваша первая функция может быть упрощена до:
function getProfileUpdates($user_id) {
global $db;
$s = $db->prepare("SELECT m . * , u.picture, u.username
FROM notes m, user u
WHERE m.user_id = u.user_id
AND u.user_id = ?
ORDER BY m.dt DESC LIMIT 10");
$s->execute($user_id)
return $s->fetch();
}
Где $user_id
был добавлен в качестве параметра, а в SQL заменен ?
заполнителем.