donglang1976 2011-07-11 13:07
浏览 161
已采纳

mysql_query()非常奇怪地失败了

This is a really simple thing, but it's not working for some reason. Heres my code.

I am making function (its part of a class) which checks if a username or email exists:

public function exists ($what, $who)
{
    $sql = "SELECT * FROM users WHERE $what = $who";
    $query = mysql_query($sql);

    if (mysql_num_rows($query) != 0)
    {
        return true;
    }
    else
    {
        return false;
    }
}

The function returns nothing. In fact if I run that query through regular PHP it returns nothing also. I don't understand why.

This following piece of code returns news entries perfectly:

function fetch($id = '') 
{
    if (empty($id))
    {
        $query = 'SELECT * FROM news ORDER BY id desc';
    }
    elseif (is_numeric($id))
    {
        $query = "SELECT * FROM news WHERE id = $id";
    }
    else
    {
        $route->to(SITE_URL);
    }
    $result = mysql_query($query);

    if (mysql_num_rows($result) > 0)
    {
        return $result;
    }

}

I am confused.

  • 写回答

2条回答 默认 最新

  • douwo4837 2011-07-11 13:09
    关注

    The problem is that you are missing quotes in your query:

     $sql = "SELECT * FROM users WHERE $what = $who";
     //SELECT * FROM users WHERE username = Mario  is not a valid query
    

    should be:

     $sql = "SELECT * FROM users WHERE $what = '$who'";
    

    the other queries are working because you are checking against an id, in this case against a string (and in this case you need quotes)

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

悬赏问题

  • ¥15 怎样才能让鼠标沿着线条的中心线轨迹移动
  • ¥60 用visual studio编写程序,利用间接平差求解水准网
  • ¥15 Llama如何调用shell或者Python
  • ¥20 谁能帮我挨个解读这个php语言编的代码什么意思?
  • ¥15 win10权限管理,限制普通用户使用删除功能
  • ¥15 minnio内存占用过大,内存没被回收(Windows环境)
  • ¥65 抖音咸鱼付款链接转码支付宝
  • ¥15 ubuntu22.04上安装ursim-3.15.8.106339遇到的问题
  • ¥15 blast算法(相关搜索:数据库)
  • ¥15 请问有人会紧聚焦相关的matlab知识嘛?