我在制作正确的SQL字符串时遇到问题,并插入包含字符串的变量。
我以为我可以使用:
function get_search_books($parameters)
{
$result = queryDatabase(
"SELECT title FROM book WHERE title LIKE '%?%'",
array(1 => $parameters[0])
);
//...
}
但这种情况似乎有效......
有没有人知道如何用字符串变量完成这项工作?
答案 0 :(得分:1)
在绑定阶段,只需在参数中使用字符%
即可。
试试这个:
$result = queryDatabase(
"SELECT title FROM book WHERE title LIKE ?",
array(1 => '%' . $parameters[0] . '%')
);
答案 1 :(得分:0)
您应首先通过插入数据库中的原始值来检查查询。比检查什么是错的。通过这种方式,您可以确定错误是在sql中还是在作为参数传递的数组中
"SELECT title FROM book WHERE title LIKE '%anythingindatabase%'",