出于安全原因,我必须能够使用准备好的MYSQLI语句。
我需要能够ORDER BY COLUMNNAME DIRECTION
但是,列名和方向(ASC / DESC)一样是动态的
当我绑定mysqli参数时我得到
'COLUMNNAME''ASC'或'COLUMNNAME''DESC'
而我需要的是没有报价........
反正有这样做吗?
我见过有人在Are PHP MySQLi prepared queries with bound parameters secure?
无法将参数绑定用于列名或表名。您需要先正确编辑准备好的语句,然后再绑定参数。
$sortorder = empty($sortorder) ? ' ORDER BY `some_column` ASC' : $sortorder;
$preparedStatement = $pdoObject->prepare('SELECT * FROM `whereever` WHERE `some_column` = :whatever ' . $sortorder);
$preparedStatement->bindValue(':whatever', 'whatever-the-value-is');