代码之家  ›  专栏  ›  技术社区  ›  Mona Coder

在MySQLi的select语句中获取绑定参数时出错

  •  -1
  • Mona Coder  · 技术社区  · 6 年前

    我在下面添加了一个精选片段。为什么我在上出现以下错误 bind_param() ?

    未捕获的错误:对boolean上的成员函数bind_param()的调用

    代码:

    $sessien = $_POST['xsession'];
    $conn = new mysqli(DB_SERVER, DB_USERNAME, DB_PASSWORD, DB_NAME);
    $query = "SELECT `post` FROM `user` WHERE session=? ORDER BY `thedate` DESC ";
    $stmt = $conn->prepare($query);
    $stmt->bind_param("s", $sessien);
    $stmt->execute();
    while ($stmt -> fetch()) {
            echo "$post<br>";
    }
    $stmt->close();
    $conn->close();
    
    1 回复  |  直到 6 年前
        1
  •  1
  •   Mahmoud.Eskandari    6 年前

    Mysqli prepare can返回 false 在绑定之前,必须检查它是否有错误。 请看这篇文章php.net

    http://php.net/manual/en/mysqli.error.php

        $sessien = $_POST['xsession'];
        $conn = new mysqli(DB_SERVER, DB_USERNAME, DB_PASSWORD, DB_NAME);
        /* check connection */
        if ($conn->connect_errno) {
            printf("Connect failed: %s\n", $conn->connect_error);
            exit();
        }
        $query = "SELECT `post` FROM `user` WHERE session=? ORDER BY `thedate` DESC ";
        $stmt = $conn->prepare($query);
        if ($stmt) {
            $stmt->bind_param("s", $sessien);
    
            //bind Response variables
            $stmt->bind_result($post);
            $stmt->execute();
            while ($stmt -> fetch()) {
                    echo "$post<br>";
            }
            $stmt->close();
        }else{
               //error
               var_dump($conn->error);
        }