PHP PDO, как обновить информацию - PullRequest
0 голосов
/ 15 апреля 2019

Я очень новичок в PHP, я использую PHP MVC с PDO.

Я пытаюсь обновить имя и фамилию моей таблицы «Профиль» для данного идентификатора пользователя.

Вот моя модель :

public function update(){
    $stmt = $this->_connection->prepare("UPDATE Profile SET first_name = ?, last_name = ?, WHERE user_id = :user_id");
    $stmt->bindParam(':user_id', $_SESSION['user_id']);
    $stmt->execute();
    return $stmt->rowCount();
}

Вот мой контроллер :

        $prof = $this->model('Profile');
        $myProfile = $prof->getProfile($_SESSION['username']);

        if(isset($_POST['action'])){
                 $myProfile ->first_name = $_POST['First_name'];
                 $myProfile ->last_name = $_POST['Last_name'];
                 $myProfile ->update();

        }

Это не работает, я получаю следующее ошибка :

PDOStatement::execute(): SQLSTATE[HY093]: Invalid parameter number: mixed named and positional parameters (points to excute in model)

1 Ответ

0 голосов
/ 15 апреля 2019

Ваша функция update () должна выглядеть следующим образом:

public function update() {

    $stmt = $this->_connection->prepare('UPDATE profile SET first_name = :first_name, last_name = :last_name WHERE user_id = :user_id');
    $stmt->bindParam(':user_id', $_SESSION['user_id']);
    $stmt->bindParam(':first_name', $_POST['First_name']);
    $stmt->bindParam(':last_name ', $_POST['Last_name']);
    $stmt->execute();

    return $stmt->rowCount();
}

Также:

  • В вашем запросе SQL есть опечатка (например, , до WHERE)
  • Избегайте смешивания прописных / строчных букв в именах переменных
  • Дважды проверьте свои входные данные (не пустые и соответствующие ожидаемому формату) перед обновлением базы данных
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...