В общем да, на первый взгляд этот код производит ужасное впечатление
Тут даже не 2010-е, тут скорее 1990-е
По пунктам
- конструктор, совпадающий с именем класса, уже отсутствует в языке
- в конструктор передается бессмысленная переменная дб, которая нигде не используется
- функции вида formField() - это явно какой-то адок и инъекции
- про mysql_query уже сказали
- про собаку уже сказали. причём она здесь не нужна, mysql_query практически не выдаёт ошибок
- die ( mysql_error () ); - это вообще зашквар. Я кстати однажды наблюдал результат похожего кода на тостере много лет назад, хе-хе. На боевом сайте системные сообщения об ошибках
никогда не должны выводиться в браузер. Вообще, это родовая ошибка похапешников, сохранившаяся до наших дней - у них все ошибки в обязательном порядке обрабатываются здесь и сейчас. В то время как код приложения должен только выбросить ошибку, а обрабатываться все ошибки должны централизованно, в другом месте.
Однако есть и хорошее.
Сам по себе класс неплохой, и довольно грамотный ООП в целом.
пожалуй, надо только подправить синтаксис, и задействовать какой-нибудь осмысленный объект $db, чтобы запрос выполнялся как-то так
function addPlace($place) {
$query = "INSERT INTO place
(name,english, countryID, globalRatingID, typeID, worldPartID, datecreated,
datelastmodified,datepublished,permissionLevel,tansliterated)
VALUES (
(:name,:english, :countryID, :globalRatingID, :typeID, :worldPartID, now(),now(),
now(),:permissionLevel,:tansliterated)";
$this->db->query($query, [
'name' => $place->getName(),
'english' =>$place->getEnglish(),
// и так далее, всё массивом
]);
return true;
}