我得到这个错误:
警告:mysqli_stmt::bind_param():变量数与准备语句中的参数数不匹配
代码:
$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();
我正在尝试将用户输入输入到准备好的语句中。
此代码工作正常,但对sql注入不安全:
$result = $sql->query("SELECT name, site, message, `when` FROM messages WHERE message LIKE '%" . $_GET['search'] . "%'");
1条答案
按热度按时间s2j5cfk01#
使用时
LIKE
在事先准备好的声明中,情况有点不同。你应该添加%
在将参数绑定到语句之前。尝试以下操作: