未定义的变量:查询错误//

时间:2017-06-10 16:47:13

标签: php

我试图自己解决这个问题但是我被困了。我在博客网站上使用php工作,我遇到了一个错误,我想在文章中添加评论:

未定义的变量:第73行的C:\ wamp \ www \ entertheletter.dev \ fonctions \ blog.php中的查询

我不会在不起作用的地方停下来。当我点击提交按钮时会发生这种情况。这是我的代码:

Php表示错误的函数:

function recherche(){
            global $bdd;

            extract($_POST);

            $recherche = $bdd->prepare("SELECT id, titre, accroche, publication, image FROM articles WHERE titre LIKE :query OR contenu LIKE :query ORDER by id DESC");
            $recherche->execute([ 
                "query" => '%' . $query . '%' 

            ]); 
            $recherche = $recherche->fetchAll();

            return $recherche;
        }

评论功能:

function commenter() { 
           if(isset($_SESSION["membre"])) {
                global $bdd;

            $erreur = "";

            extract($_POST);

            if(!empty($commentaire)) {
                $id_article = (int)$_GET["id"];

                $commenter = $bdd->prepare("INSERT INTO commentaires(id_membre, id_article, commentaire) VALUES(:id_membre, :id_article, :commentaire)");
                $commenter->execute([
                    "id_membre" => $_SESSION["membre"],
                    "id_article" => $id_article,
                    "commentaire" => nl2br(htmlentities($commentaire))
                    ]);    

                }
               else
                    $erreur .= "Vous devez écrire du texte";

               return $erreur;
            }

        }

由于

1 个答案:

答案 0 :(得分:0)

我认为您不应将extract用于$_POST$_GET,因为如果$_POST中没有密钥,那么PHP将抛出一个未定义的错误。此外,您需要检查$_POST中的数据是否存在。

而不是直接使用extract($_POST)使用$_POST

function recherche(){
    global $bdd;

    if(isset($_POST['query'])){

        $recherche = $bdd->prepare("SELECT id, titre, accroche, publication, image FROM articles WHERE titre LIKE :query OR contenu LIKE :query ORDER by id DESC");
        $recherche->execute([ 
            "query" => '%' . $query . '%' 

        ]); 
        $recherche = $recherche->fetchAll();

        return $recherche;
    }
}