【问题标题】:Trying to use prepared statement with sql like keyword but running into problems尝试使用带有 sql like 关键字的准备好的语句,但遇到问题
【发布时间】:2020-02-24 00:53:45
【问题描述】:

我正在接受表单输入并尝试使用 LIKE 关键字和 % 修饰符将其传递给 sql 选择查询,所有这些都在 pdo 准备语句中,我不知道在哪里开始调试。代码如下:

if (isset($_POST["submit"])) {
    $search_string = "%".$_POST["search"]."%";

    $query = "SELECT * FROM posts WHERE post_tags LIKE :a";

    $stmt = $connect->link->prepare($query);
    $stmt->bindValue(":a",$search_string);
    $stmt->execute();

    while($row = $stmt->fetchall()) {
        echo $row["post_tags"];
    }
}

我收到以下错误:

注意:未定义索引:第 18 行 C:\wamp64\www\cms\CMS_TEMPLATE\includes\sidebar.php 中的 post_tags

【问题讨论】:

  • 那么post_tags 表中没有名为post_tags 的列!!
  • post_tags 页面中的列的名称是什么
  • 它给出了我尝试的每一列的错误是正确的

标签: mysql pdo prepared-statement


【解决方案1】:

问题是我使用的是 fetchall 而不是 fetch

if(isset($_POST["submit"])){
                $search_string = "%".$_POST["search"]."%";
                ;

                $query = "SELECT * FROM posts WHERE post_tags LIKE :a";

                $stmt = $connect->link->prepare($query);
                $stmt->bindValue(":a",$search_string);
                $stmt->execute();

                $numrows = $stmt->num_rows();
                echo $numrows;

                    while($row = $stmt->fetch()){
                        echo $row["post_tags"];
                    }



            }

【讨论】:

    猜你喜欢
    • 2019-07-02
    • 1970-01-01
    • 2019-07-26
    • 1970-01-01
    • 1970-01-01
    • 2016-12-13
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多