我不明白为什么这不起作用。我在播种者中有以下内容:“6 4 7”没有引号,但所有空格包括在开头和结尾。这是数据库中一行的播种值。
我有行ID,我将其转换为此形式的字符串(id为4)“4”然后在sowner中搜索它以查看它是否存在。没有结果返回。
这是我的代码:
$sql = 'SELECT * FROM `services` WHERE `sowner` LIKE ?';
$stmt = $conn->prepare($sql);
if($stmt === false) {
trigger_error('Wrong SQL: ' . $sql . ' Error: ' . $conn->errno . ' ' . $conn->error, E_USER_ERROR);
}
$spacedid = " " . strval($row['id']) . " ";
$stmt->bind_param('s', $spacedid);
$stmt->execute();
$res3 = $stmt->get_result();
目的是在一个以空格分隔的字符串中有一个未定义数量的人ID,如果他们的id在服务sowner字段中,则只向人们显示内容。
我很肯定它是LIKE因为如果我删除WHERE,所有行都会出现。
此外,我在类似
的on-type搜索建议表单中使用相同的实现SELECT * FROM `users` WHERE username LIKE ?
答案 0 :(得分:3)
您需要将通配符运算符添加到类似的
所以声明变得更像
$spacedid = " " . strval($row['id']) . " ";
更改行
$spacedid = "% " . strval($row['id']) . " %";
到
{{1}}