MySQL查询有效,但不是来自php

时间:2013-08-06 17:12:56

标签: php mysql

我有一个查询我试图用php运行mysql_query()函数,它如下

    $result = mysql_query(
    "SELECT score,name,time,
    FIND_IN_SET( score, (SELECT GROUP_CONCAT( score ORDER BY score DESC,time ASC ) FROM Highscores )) AS rank 
    FROM Highscores WHERE name = $name Order BY rank LIMIT 1");

由于某些原因,这不会返回任何结果,而phpMyAdmin中的相同查询会返回排名靠前的高分。

我只是没有得到它......任何人都有任何想法?

此致 /佛瑞德

4 个答案:

答案 0 :(得分:1)

尝试一下: -

$qry="SELECT score,name,time,
    FIND_IN_SET( score, (SELECT GROUP_CONCAT( score ORDER BY score DESC,time ASC ) FROM Highscores )) AS rank 
    FROM Highscores WHERE name ='".$name."' Order BY rank LIMIT 1";
$result = mysql_query($qry);

答案 1 :(得分:0)

您的变量应该包含在{}中,因为它在字符串中。此外,因为名称似乎应该是用户生成的,请确保您在将字符串放入查询之前转义字符串。其他人也是对的,因为名字大概是一个字符串,它也需要一组引号。

答案 2 :(得分:0)

请尝试这个并告诉我们是否有错误,以便我们进行调试

$result = mysql_query("SELECT score,name,time, FIND_IN_SET( score, (SELECT GROUP_CONCAT( score 
ORDER BY score DESC,time ASC ) FROM Highscores )) AS rank FROM Highscores WHERE name = $name Order BY rank LIMIT 1") or die("error is: ".mysql_error());
var_dump($results);

答案 3 :(得分:0)

问题与WHERE name = $name有关,当然应该是WHERE name = '$name',如评论中所指出