Хорошо, поэтому я стремлюсь к практике ООП. Если этот класс немного переборщит за то, что я пытаюсь выполнить, пожалуйста, дайте мне знать, но я просто делаю это для практики. В основном у меня есть этот класс для формы, которая очень простая, все, что она делает, это взять имя, адрес электронной почты и комментарий или сообщение от них и загрузить его в базу данных. Я знаю (на самом деле не знаю, просто уверен), что это функция uploadMessage класса. Интересно, может ли кто-нибудь сказать мне, где я ошибаюсь. Спасибо! Первого класс сообщений -Метод класса PHP не работает?
class message{
public $name;
public $email;
public $message;
function __construct($name, $email, $message){
$this->name = $name;
$this->email = $email;
$this->message = $message;
}
public function uploadMessage(){
if(!isset($this->name) || !isset($this->email) || !isset($this->message)){
throw new Exception("One of the fields was incorrectly typed.");
} else{
$database = new DB("localhost","username","password","Personal_blog");
$this->name = mysqli_real_escape_string($database->_db,$this->name);
$this->email = mysqli_real_escape_string($database->_db,$this->email);
$this->message = mysqli_real_escape_string($database->_db,$this->message);
$query = "INSERT INTO messages(name,email,message) VALUES('".$this->name."', '".$this->email."', '".$this->message."')";
$results = $database->query($query);
if($results->affected_rows > 0){
return true;
}
}
}
}
И ниже код, который я использовал для создания экземпляра класса, а также вызвать метод.
ini_set("display_errors",1);
include_once "blog_functions.php";
@ $name = "eric" ; //$_POST['name'];
@ $email = "email"; //$POST['email']; USING FAKE VALUES HERE FOR TESTING
@ $message = "message"; //$_POST['message'];
echo "hey";
try{
$message = new message($name, $email, $message);
$message->uploadMessage();
}
Как вы можете видеть, я хочу, чтобы принимать значения из формы с помощью метода $ _POST, однако только для некоторого тестирования я поставил его некоторые случайные значения переменных, и она не будет работать. Новый метод DB() относится к другому классу, который в основном просто расширяет библиотеку php mysqli. И свойство $ database -> _ db этого закрытия на самом деле является обработчиком mysqli, который я использовал для ссылки в mysqli_real_escape_string.
Кстати, причина я думаю, что это uploadMessage() метод, потому что, когда я беру, что из моего кода, эхо «эй»; работает. В противном случае я ничего не получаю. –
Возможно, вы захотите удалить свое имя пользователя и пароль из образца кода. –
Вы знаете, что эти '@' действительно замедляют ваш код? – naththedeveloper