Итак, у меня есть этот класс базы данных в PHP, и у меня есть только 1 функция (кроме __construct
и __destruct
. Позвольте мне объяснить подробнее ...
Первоначально я написал это так, чтобы при подключении к базе данных я просто вызывал свою функцию connect_to_db()
, которая возвращала объект mysqli. Затем я использовал эти объекты функций (->query()
, ->prepare()
, ->bind_param()
, и так далее ..), чтобы сделать что угодно. Это загромождено (и все еще остается тем, что я еще не переключил свой код на мой новый класс) с большим количеством функций, которые просто выполняют определенные действия, например:
function get_country_info($db, $usrid) {
$statement = "select `name`, `population`, `money`, `food` from `countries` where `usr_id` = ?";
$qry = $db->prepare($statement) or
trigger_error("get_country_info():statement failed...");
$qry->bind_param("i", $usrid);
$qry->execute();
$qry->bind_result($name, $population, $money, $food);
$qry->fetch();
$res = array("name" => $name,
"pop" => $population,
"money" => $money,
"food" => $food);
return $res;
}
И то, что я первоначально планировал сделать, это просто бросить их в класс для ясности, но я фактически закончил тем, что создал класс, который при создании создает объект mysqli для конкретной базы данных (предоставляется через аргумент) и при уничтожении закрывается эта ссылка. Мне очень нравится не беспокоиться о наборе $db->close();
, так как когда скрипт завершает выполнение, соединение закрывается.
Имеет только 1 другую функцию; query()
. Эта функция может обрабатывать любые запросы и выводить их в виде многомерного массива. Используется eval()
. Из того, что я понимаю, это, как правило, осуждается - но eval()
так полезен; так почему это осуждается?
Я полагаю, что эта функция может быть медленной, но, видимо, я просто использую ее для проекта для домашних животных (браузерная игра по управлению страной), и я не заметил ничего, что меня это совсем не волнует. Меня беспокоит то, будут ли люди обычно делать это в «реальном мире» или есть какой-то стандарт, по которому люди делают это, или, возможно, что-то включенное (или добавляемое) в PHP, которое обычно используется
Я самоучка, поэтому иногда я не знаю, как лучше поступить. Может быть, кто-нибудь мог бы посоветовать мне здесь?
Соответствующую функцию можно увидеть здесь: http://pastebin.org/353721, в виде ~ 60 строк, и я не хочу загромождать страницу. Я также не тестировал его всесторонне (я даже не знаю, что такое модульные тесты, поэтому я тестирую, используя эту функцию различными способами), поэтому могут возникнуть проблемы, о которых вы, ребята, можете не знать. вне.
Спасибо.