Php 获取sql记录

Php 获取sql记录,php,mysql,sql,Php,Mysql,Sql,当我运行这段代码时,它返回主题fine $query = mysql_query("SELECT topic FROM question WHERE id = '$id'"); if(mysql_num_rows($query) > 0) { $row = mysql_fetch_array($query) or die(mysql_error()); $topic = $row['topic']; } 但是当我把它改成这个的时候,它根本

当我运行这段代码时,它返回主题fine

$query = mysql_query("SELECT topic
FROM question 
WHERE id = '$id'");
    if(mysql_num_rows($query) > 0) {
        $row = mysql_fetch_array($query) or die(mysql_error());
        $topic = $row['topic'];
    }
但是当我把它改成这个的时候,它根本就不会运行。为什么会这样

$query = mysql_query("SELECT topic, lock
FROM question 
WHERE id = '$id'");
    if(mysql_num_rows($query) > 0) {
        $row = mysql_fetch_array($query) or die(mysql_error());
        $topic = $row['topic'];
        $lockedThread = $row['lock'];
        echo "here: " . $lockedThread;
    }

确保
lock
不是MySQL关键字(保留字),您可能需要在字段列表中反勾选它(
`lock`
):

SELECT `topic`, `lock`
...

它到底是如何运行的?您是否收到了错误消息?另外,您正在将
$id
插入到查询中,而不是将其作为安全参数传递;你确定你有
列吗?mysql发生错误?@droidus:
$id
是一个变量。您不会显示它是如何填充的,但如果它来自用户/网页,则您将其放入开放的SQL代码中,从而允许恶棍使用SQL注入攻击。除非你是那个被认为不安全的人。我不相信这是一个关键词。我怎么确定?哇!后面的滴答声响了!为什么?它是保留的