Можно ли создать метод вставки с помощью php - PullRequest
0 голосов
/ 25 июня 2018

Мне нужен совет, когда я использую PDO и пытаюсь вставить данные формы в свою базу данных.

Я создал класс, в котором я подключаюсь к своей базе данных через конструкцию. Когда форма заполнена, я хочу использовать метод для приема данных, чтобы вставить их в мою базу данных.

Возможно ли это? Или мне нужно разрешить это с помощью процедурного метода?

мой оператор вставки выглядит так:

class Post extends Database
{

    public function postMessage($username, $message)
    {
        if (isset($_SERVER['POST'])){

            $connection->setAttribute(PDO::ATTR_ERRMODE, 
            PDO::ERRMODE_EXCEPTION);

            $statement = $connection->prepare("INSERT INTO messages 
            (username, message) VALUES (:user, :message)");

            $statement->bindParam(':username', $username);
            $statement->bindParam(':message', $message);

            $statement->execute();

            echo "Message has been sent";

        } else {
            exit("Need to enter a message");
        }

    }
}

1 Ответ

0 голосов
/ 25 июня 2018

Удалите оператор if-else (как этот):

class Post extends Database
{
    public function postMessage($username, $message)
    {
        if(!empty($username) && !empty($password))
        {
            $this->connection->setAttribute(PDO::ATTR_ERRMODE, 
            PDO::ERRMODE_EXCEPTION);

            $statement = $connection->prepare("INSERT INTO messages 
            (username, message) VALUES (:user, :message)");

            $statement->bindParam(':username', $username);
            $statement->bindParam(':message', $message);

            if($statement->execute())
               echo "Message has been sent";
            else
               echo "Something wants wrong!";
         }
         else
         {
            echo "Please fill all fields!";
         }
    }
}

Создать объект и вызвать функцию:

$post = new Post;
echo $post->postMessage("John", "Hello, world");
...