我得到这个错误:
$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'] . "%'");
在准备好的语句中使用(比如
)时,会有一点不同。在将参数绑定到语句之前,应将%
添加到参数中。
尝试如下所示:
$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();
我在prepare语句和bind_param中有正确的数字(7),所以我不知道为什么会发生这种情况。
我正在使用编写我认为是相当基本的准备好的状态。语句如下所示(其中是实例): 这将失败,在中的参数数不匹配。
问题内容: 我一直在尝试使用准备好的语句在PHP中编写登录表单,但是每次尝试登录时,都会出现以下错误: mysqli_stmt :: bind_result():绑定变量的数量与准备好的语句中的字段数量不匹配 这是我的代码: 有人可以告诉我为什么会这样吗? 问题答案: 如果这确实是您的代码,则可能是$ _POST [“ name”]或$ _POST [“ password”]是一个数组,因此bin
我有一个db2表t1,其中一个列是通过使用一个标量函数填充的,该函数接受两个字符串参数。 在准备sql代码时,如下所示: 当我现在向准备好的语句添加一个参数时,我得到一个错误,即第一个参数的类型不正确。 我已经尝试用单引号包装第一个参数,但没有效果。还有谁有过这个问题并且已经找到了解决办法吗?主要的问题是,我现在确定db2引擎如何为标量函数准备第一个字符串参数,以便首先抛出错误。
我在准备好的语句(mysqli)上遇到了麻烦,我正在进行连接,一切都是正确的,直到我试图绑定参数,问题是,我试图绑定63个值,我检查了很多次我有正确的值,因为我找不到导致错误的错误: 以下是我的代码: 希望有人能解释我在这里失败了什么!