<?php
$what = 'creationdate';
$sql = "SELECT * FROM `accountlist` ORDER BY ? [ASC/DESC]";
$stmt = $conn->stmt_init();
if(!($stmt->prepare($sql)))
{
echo "Error";
} else {
$stmt->bind_param("s", $what);
$check = $stmt->execute();
$result = $stmt->get_result();
}
for($n=1; $row = $result->fetch_assoc(); $n++)
{
var_dump($row);echo "<br />";
echo $n . ':<br />';
foreach($row as $key => $value) echo $key . ': '. $value . '<br />';
echo '<br />';
}
echo $check ? 'success' : 'error/no lines'
?>
*
?使用?
并将其绑定会返回“?”在$ row数组中...对于评论,这有点长。
您不能使用参数替换SQL语句中的标识符。标识符的示例是列名和表名。您也不能替换SQL关键字或运算符,例如INNER
或=
。
在您的情况下,您要用一个恒定值代替参数。将其视为作为值,而不是列引用(或表达式)。因此,ASC
和DESC
不能在相等的值之间进行区分。