Я немного запутался здесь, потому что я не уверен, где мне делать функцию sql запроса.Должен ли я делать это в CWaiter?
Вы можете, но обычно считается хорошей практикой хранить ваши запросы SQL в отдельном месте (то есть в отдельном наборе файлов исходного кода) для вашей бизнес-логики.
«MVC» - это шаблон, о котором часто говорят люди, который включает в себя разделение кода для «Модели» (т.е. всего, что должно знать структуру вашей базы данных, например, всего вашего SQL). «Вид» (все, что рисует пользовательский интерфейс,что обычно означает механизм шаблонов) и «Контроллер» (вся бизнес-логика, объединяя все это).
Это будет означать, что у вас будет другая группа классов с именами, такими как CBaseUserDB или CWaiterDB (иличто угодно) для всего, что нужно обновить / запросить базу данных.Это упрощенный пример, просто чтобы проиллюстрировать мою точку зрения.
Идея, лежащая в основе разделения, заключается в том, что SQL, шаблонный код и бизнес-логика, переплетенные друг с другом, могут быть грязными или трудными для понимания.также хочу взглянуть на PDO, который является более современным способом доступа к базе данных, чем, например, mysql_ и mysqli_.Он содержит некоторые дополнительные функции, такие как подготовленные заявления, но главное преимущество, на мой взгляд, заключается в том, что ваши знания станут более надежными в будущем, и вы сможете легко адаптироваться к различным API баз данных.В отличие от предыдущего ответа, мне не очень нравится абстракция более высокого уровня, как pear :: db, но это зависит от вашего личного мнения.