Я знаю, что этого можно избежать, просто используя другое имя метода, но мне было любопытно, возможно ли следующее.php Перезаписать метод и вызвать перезаписанный
У меня есть этот класс: (конечно, у него есть еще несколько методов, но они не имеют отношения к вопросу)
class db extends mysqli {
public function query($sql){
$sql = $this->parent->query($sql);
if($this->error){
echo "<script>popup('SQL error bro!');</script>";
}else{
return $sql;
}
}
}
То, что я хочу сделать, это вызвать оригинальный Mysqli запрос() метод из внутри query(), который я создал. Возможно ли, или я начну переименование?
А также я хотел бы указать, что это исключительно для использования в целях развития, я знаю, что пользователи не должны видеть ошибки sql. Причина, по которой я хочу сделать это, - это то, что сегодня мне нужно было изменить имя столбца таблицы с id на vid, тогда вся моя система перестала работать, и я потратил 30 минут на исследование, я бы просто хотел предотвратить это в будущем.
По какой-то причине ни один из этих синтаксисов не вызывает ошибку, но ни один из них не вторит этому маленькому скрипту, когда я намеренно провоцирую ошибку. O.o –
вам нужно включить error_reporting .. и display_error – Baba
Проблема была глупой, как обычно. Этот класс является singleton и в методе getInstance я вызывал новый mysqli не новый db. Спасибо! –