MySQLi取代列名而不是列内容?

时间:2013-03-09 18:23:51

标签: php mysqli

我正在尝试使用预准备语句来检索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个不同的tutorialsmanuals,这个脚本应该通过表“rooms”的列“number”的内容进行迭代并打印出结果。 相反,它只打印出列本身的名称(“数字”),其行数与行数一样多。

这让我很生气!它为什么要这样做?

2 个答案:

答案 0 :(得分:3)

使用列名称的反引号

$sql = $mysqli->prepare("SELECT `number` FROM rooms
        WHERE 1 
        ORDER BY  `number` ASC 
        LIMIT ?, ? ");

答案 1 :(得分:1)

你的报价错了。你实际上在你的查询中说“对于桌子房间的每个条目都给我字符串'数字'。

如果要引用字段或表名,请改用斜引号:

SELECT `field`, 'fixed string'
FROM   `table`