2011-07-07 58 views
1

我需要能夠出於安全原因使用預備的MYSQLI語句。使用mysqli和預處理語句我可以通過列命名''ORDER BY'

我需要能夠ORDER BY COLUMNNAME DIRECTION

然而,COLUMNNAME是動態的是方向(ASC/DESC)

當我綁定mysqli的參數,我得到

'COLUMNNAME「ASC '或'COLUMNNAME‘DESC’

而我需要的是不帶引號........

反正有沒有做到這一點?

我見過有人問類似的東西在 Are PHP MySQLi prepared queries with bound parameters secure?

+0

可能重複的[PHP/MYSQL - MySQLi Prepared Statements - 可能使用bind \ _param for ORDER BY? (訂購一個結果集)](http://stackoverflow.com/questions/12021018/php-mysql-mysqli-prepared-statements-possible-to-use-bind-param-for-order-by) –

回答

0

這是不可能的使用參數列或表名綁定。您需要首先正確編輯準備好的語句,然後綁定參數。

$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'); 
相關問題