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 用windows做服务的同志有吗
  • ¥60 求一个简单的网页(标签-安全|关键词-上传)
  • ¥35 lstm时间序列共享单车预测,loss值优化,参数优化算法
  • ¥15 Python中的request,如何使用ssr节点,通过代理requests网页。本人在泰国,需要用大陆ip才能玩网页游戏,合法合规。
  • ¥100 为什么这个恒流源电路不能恒流?
  • ¥15 有偿求跨组件数据流路径图
  • ¥15 写一个方法checkPerson,入参实体类Person,出参布尔值
  • ¥15 我想咨询一下路面纹理三维点云数据处理的一些问题,上传的坐标文件里是怎么对无序点进行编号的,以及xy坐标在处理的时候是进行整体模型分片处理的吗
  • ¥15 一直显示正在等待HID—ISP
  • ¥15 Python turtle 画图