PHP sql查询没有返回任何内容

时间:2014-04-23 20:30:07

标签: php sql wordpress

以下PHP代码:

$dbc = mysql_connect ('localhost','root','abcde');

if (!$dbc) {
die('Not Connected:' . mysql_error ());
}

$db_selected = mysql_select_db ('db_test', $dbc);

if (!$db_selected) {
die ("Can't Connect :" .mysql_error());
}

$query="SELECT * FROM 140423 WHERE GAME='Clash of Clans'";
//add "result"
$result=mysql_query($query);

if (!$query) {
die ("Can't Connect :" .mysql_error());
}

echo $result;

没有任何回报。

我应该使用print而不是echo吗?

另外,如果我改变

echo $result;

echo 'whatever';

它返回"无论什么"在我的帖子上。

帮助?

3 个答案:

答案 0 :(得分:2)

从手册:

  

标识符可以以数字开头,但除非引用可能不仅仅包含数字。

这正是你正在做的事情,而且不应该这样做。

解决方案:

  1. 为您的表选择一个不同的名称,最好由一个字母组成。

  2. 在表名周围使用反引号。

  3. 另外,如果您想查看数据,则需要使用循环。

    <强>即:

    $query="SELECT * FROM `140423` WHERE GAME='Clash of Clans'";
    
        while ($row = mysql_fetch_assoc($query)) 
                {
                    $var = $row["column"]; // the column of your choice
                }
    
            echo $var;
    

    重写:

    $dbc = mysql_connect ('localhost','root','abcde');
    
    if (!$dbc) {
    die('Not Connected:' . mysql_error ());
    }
    
    $db_selected = mysql_select_db ('db_test', $dbc);
    
    if (!$db_selected) {
    die ("Can't Connect :" .mysql_error());
    }
    
    $query="SELECT * FROM `140423` WHERE GAME='Clash of Clans'";
    //add "result"
    $result=mysql_query($query);
    
    // as pointed out already
        if (!$result) {
        die ("Can't Connect :" .mysql_error());
        }
    
    echo $result; // this is up to you
    
    // if you want to see data from your table, loop through it.
    
        while ($row = mysql_fetch_assoc($query)) 
                {
                    $var = $row["column"]; // the column of your choice
                }
    
            echo $var;
    

    <强>脚注:

    mysql_*函数弃用通知:

    http://www.php.net/manual/en/intro.mysql.php

    从PHP 5.5.0开始,不推荐使用此扩展,不建议用于编写新代码,因为将来会删除它。相反,应使用mysqliPDO_MySQL扩展名。在选择MySQL API时,另请参阅MySQL API Overview以获得进一步的帮助。

    这些功能允许您访问MySQL数据库服务器。有关MySQL的更多信息,请访问»http://www.mysql.com/

    可以在»http://dev.mysql.com/doc/找到MySQL的文档。

答案 1 :(得分:1)

mysql_query返回资源或false。您需要使用各种提取函数之一来操作资源。

您应该查看$query是否为假,而不是查看$result是否为假。

if (!$result) {
die ("Can't Connect :" .mysql_error());
}

答案 2 :(得分:0)

之后

$result=mysql_query($query);

if (!$query) {
die ("Can't Connect :" .mysql_error());
}

使用

while($row = mysql_fetch_array($result)) {
  echo $row['YourTableFieldName'];
}

或使用

while($row = mysql_fetch_array($result, MYSQL_ASSOC)) {

    // If you want to display all results from the query at once:
    print_r($row);

    // If you want to display the results one by one
    echo $row['YourTableFieldName1'];
    echo $row['YourTableFieldName2']; 
}