QLSTATE [HY093]: недопустимый номер параметра: параметр не был определен - PullRequest
0 голосов
/ 20 января 2019

У меня проблемы с поиском, почему мой код не работает. Я попытался посмотреть в Интернете, но не могу найти ошибку.

Вот моя функция

public function AddNews($newsDate,$title,$content){

        try{
            $stmt = $this->db->prepare("INSERT INTO news(newsDate,title,content) VALUES (:newsDate,:$title,:$content)");

            $stmt->bindParam(":newsDate", $newsDate);
            $stmt->bindParam(":title", $title);
            $stmt->bindParam(":content", $content);

            $stmt->execute();

            return $stmt;

        }catch(PDOException $ex){
            echo $ex->getMessage();
        }
    }

и форма действия

/*---------DEVELOPMENT-----------*/
require_once '/database/database.php';

/*---------ENVIRONMENT-----------*/
// require_once 'database/database.php';

if(isset($_POST['btn-news-submit'])){

$newsDate = trim($_POST['newsDate']);
$title = trim($_POST['bodyContent']);
$content = trim($_POST['newsContent']);

if($user->AddNews($newsDate,$title,$content)){
    header("Location: admin-index.php?successfully-uploaded");
}
}

и, наконец, моя HTML-форма

<div class="news">
            <form action = "upload-news"  method="POST" enctype="multipart/form-data">
                <div class="form-group">
                        <input type="hidden" name="newsDate" id="newsDate" value="<?php echo date('Y-m-d H:i:s'); ?>" readonly="readonly">
                        <label for="bodyContent"><b>Title</b></label>
                        <textarea class="form-control" rows="1" id="bodyContent" name="bodyContent"></textarea>
                        <br>
                        <label for="exampleFormControlFile1">Content of News</label>
                        <textarea class="form-control" rows="5" id="newsContent" name="newsContent"></textarea>
                        <br />
                    <br>
                    <div class="btn-news">
                        <button type="submit" name="btn-news-submit" class="btn btn-primary">Post</button>  
                    </div>
                </div>
            </form>
        </div>

Может кто-нибудь указать, в чем здесь ошибка. Это говорит

SQLSTATE [HY093]: недопустимый номер параметра: параметр не был определен

Но я проверил несколько раз, и все мои bindParam совпадают

1 Ответ

0 голосов
/ 20 января 2019

Не используйте знаки доллара в ручках привязки здесь:

"INSERT INTO news(newsDate,title,content) VALUES (:newsDate,:$title,:$content)"
                                                             ^       ^

Просто используйте простые строки, подобные этой:

"INSERT INTO news(newsDate,title,content) VALUES (:newsDate,:title,:content)"
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...