当前位置: 首页 > 知识库问答 >
问题:

mysqli bind_param变量数与准备语句中的参数数不匹配

魏波娃
2023-03-14

我得到这个错误:

$stmt = $sql->prepare("SELECT name, site, message, `when` FROM messages WHERE message LIKE '%?%'");
$stmt->bind_param('s', $_GET['search']);
$stmt->execute();
$result = $stmt->get_result();
$result = $sql->query("SELECT name, site, message, `when` FROM messages WHERE message LIKE '%" . $_GET['search'] . "%'");

共有1个答案

桑宇
2023-03-14

在准备好的语句中使用(比如)时,会有一点不同。在将参数绑定到语句之前,应将%添加到参数中。

尝试如下所示:

$param = "%{$_GET['search']}%";
$stmt = $sql->prepare("SELECT name, site, message, `when` FROM messages WHERE message LIKE ?");
$stmt->bind_param('s', $param);
$stmt->execute();
$result = $stmt->get_result();
 类似资料: