SQL LIKE实际上根本不显示任何结果

时间:2019-11-08 17:17:47

标签: php sql

我试图制作一个搜索系统,该系统使用LIKE运算符根据用户键入的内容搜索结果。我正在使用它与字符串。它没有显示任何结果。

代码:

SELECT * FROM table WHERE name LIKE ' . $input . ';

input是用户输入的PHP变量。

编辑:不用担心SQL注入,它们都处于脱机状态。

3 个答案:

答案 0 :(得分:1)

为正确使用like,应使用wildchar例如:

 SELECT * FROM table WHERE name LIKE concat('%', ? ,'%')  ;

并且您不应该在SQL代码中使用var ..您有sqlinjectiomn的风险

为避免这种情况,您应该查看数据库驱动程序以准备语句和绑定参数

例如PDO

$st  = $conn->prepare("SELECT * FROM table WHERE name LIKE concat('%', ? ,'%')");
$st->bindParam(1, $input, PDO::PARAM_STR, 255);
$st->execute();

答案 1 :(得分:0)

尝试一下

$string = "input";
$sql = "select * from table where name like '%$string%'"

答案 2 :(得分:0)

创建变量并存储要搜索的值

$ where =“名称,例如'%$ string%'”;

并放在表名后面

$ sql =“从表名$ where中选择*”;