我正在尝试从搜索表单调用的函数中执行MySQL查询,提供2个值,$ Search& $下拉菜单。
为了防止MySQL注入,我试图绑定如下的值:
$database->query('SELECT * FROM equipment WHERE :dropdown like :Search');
$database->bind(dropdown, $dropdown);
$database->bind(Search,$Search);
$getServers = $database->fetchall();
在MariaDB日志中,我发现查询执行如下:
SELECT * FROM equipment WHERE 'rackid' like '5';
问题是列名:('rackid'),用引号执行,给出0输出,如果我手动执行相同的代码而没有引号如下,我得到了所需的输出。
SELECT * FROM equipment WHERE rackid like '5';
有没有办法阻止代码将单引号添加到mysql语句中的变量?