Как обновить crud в php? - PullRequest
       9

Как обновить crud в php?

0 голосов
/ 23 декабря 2018

Мой php crud (объектно-ориентированный и pdo) не работает.Показывает

Неустранимая ошибка: Uncaught PDOException: SQLSTATE [HY093]: Неверный номер параметра: параметр не был определен.В $ stmtExec = $ stmt-> execute ();

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

public function updateId($fields, $stud_id) {

    $st = "";
    $counter = 1;
    $total_fields = count($fields);

    foreach($fields as $key => $value){

        if($counter == $total_fields){

            $set = "$key = :".$key;
            $st = $st.$set;

        } else {

            $set = "$key = :".$key.", ";
            $st = $st.$set;
            $counter++;
        }
    }
    $sql = "";
    $sql.= "UPDATE students SET ".$st;
    $sql.= "WHERE id = ".$stud_id;
    $stmt = $this->connect()->prepare($sql);

    foreach($fields as $key => $value){
        $stmt->bindValue(':'.$key, $value);
    }
    $stmtExec = $stmt->execute();

    //if successful
    if($stmtExec){
        header('Location: index.hp');
    }
}

1 Ответ

0 голосов
/ 23 декабря 2018

Если я правильно понимаю ваш код, вам нужно поставить здесь один дополнительный пробел:

$set = "$key = :".$key." ";

Если вы пропустите этот пробел, ключевое слово WHERE будет частью вашего последнегоимя параметра.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...