我正在尝试使用准备好的语句来检索MySQL表的内容。
$sql = $mysqli->prepare("SELECT 'number' FROM rooms
WHERE 1
ORDER BY 'number' ASC
LIMIT ?, ? ");
$n1 = 0;
$n2 = 30;
$sql->bind_param('ii', $n1, $n2);
$sql->execute();
$sql->bind_result($number);
while ($sql->fetch()){
printf($number);
}
根据我读过的几乎3个不同的教程和手册,这个脚本应该遍历表"rooms"的列"number"的内容并打印出结果。相反,它只输出列本身的名称("number"),输出次数与行数相同。
我快疯了!它为什么要这样做?
使用反号作为列名
$sql = $mysqli->prepare("SELECT `number` FROM rooms
WHERE 1
ORDER BY `number` ASC
LIMIT ?, ? ");
你的引号错了。您实际上在您的查询中说:"对于桌子房间中的每个条目,请为我获取字符串'number'。
当您想要引用字段名或表名时,请使用斜引号:
SELECT `field`, 'fixed string'
FROM `table`