在线观看不卡亚洲电影_亚洲妓女99综合网_91青青青亚洲娱乐在线观看_日韩无码高清综合久久

鍍金池/ 問答/PHP  HTML/ 使用預處理語句時如何綁定帶有空格的參數(shù)?

使用預處理語句時如何綁定帶有空格的參數(shù)?

一個簡單的數(shù)據(jù)表:
一個簡單的數(shù)據(jù)表

我想用預處理方式將數(shù)據(jù)表以數(shù)量num倒序排列:

<?php 
header('content-type:text/html;charset:utf-8');
$mysqli = new mysqli('localhost', 'root', '', 'info');
$stmt = $mysqli->prepare("SELECT * FROM test ORDER BY ?");
$dst = 'num desc';
$stmt->bind_param('s', $dst);
$stmt->execute();
$result = $stmt->get_result();
$str = '<table width="50%" border="1" cellspacing="0" cellpadding="0">';
$str .= '<tr><th>id</th><th>名稱</th><th>數(shù)量</th><th>價格</th></tr>';
while ($row = $result->fetch_assoc()) {
    $str .= '<tr align="center"><td>'.$row['id'].'</td><td>'.$row['name'].'</td><td>'.$row['num'].'</td><td>'.$row['price'].'</td></tr>';
}
$str .='</table>';
echo $str;
$stmt->close();
$mysqli->close();
?>

但是不起作用:
圖片描述

數(shù)據(jù)庫上沒問題:
圖片描述

另外無法以"SELECT * FROM test ORDER BY ? ?"的形式進行預處理,會報錯。
求大佬幫忙看下怎么解決這個問題?

回答
編輯回答
耍太極

預處理 處理的是參數(shù),是把?替換成相應的安全字符串,order 的參數(shù)是字段名,不是字符串。這兒應該判斷一下字段名,然后直接拼 sql.
你的 sql 是 order by "num", 不是 order by num

2017年6月30日 19:10