mysqli准备语句bind_param错误

时间:2014-07-23 02:25:39

标签: php mysql mysqli

我遇到从php mysql_切换到mysqli_的问题。我是根据PHP文档编写的,但我一直收到错误:

if($stmt = $mysqli->prepare("SELECT * FROM $tbl_name WHERE MATCH(DESCRIPTION) AGAINST ('?') LIMIT $start, $limit")) {
        $stmt->bind_param('s', $search);
        $stmt->execute();
        $stmt->bind_result($vlink, $ilink, $des, $rating, $site);
    }

它说:

  

mysqli_stmt :: bind_param():变量数与预准备语句中的参数数量不匹配“。

但是我只有一个问号,所以我不明白为什么它不起作用

1 个答案:

答案 0 :(得分:0)

您所做的实际上是将?称为'?',将其转换为字符串。所以你需要做的就是摆脱它,这就是你做的事情

SELECT * FROM $tbl_name WHERE MATCH(DESCRIPTION) AGAINST (?) LIMIT $start, $limit"