首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >在MySQL查询上卡住

在MySQL查询上卡住
EN

Stack Overflow用户
提问于 2013-04-22 05:22:38
回答 5查看 207关注 0票数 0

所以我正在做这个php程序,它有一个Person类。该类内部有一个名为find_by_email($email)的方法。我尝试通过电子邮件查找用户,使用的电子邮件地址肯定在我的数据库中。查询db之后,它应该返回一个person对象。

我已经检查过以确保我的表名和列是正确的。经过测试,代码似乎没有通过第一个if语句:if ($r = mysql_query($query, $dbc))。我唯一能想到的就是我的查询一定是不正确的。这不是正确的语法吗?

下面是我调用该方法的方式:

代码语言:javascript
复制
$email = $_POST['email']; 
$person = Person::find_by_email($_POST['email']);

下面是我的Person::find_by_email()方法:

代码语言:javascript
复制
    public static function find_by_email($email) {
        global $dbc;
        $query = "SELECT * FROM person WHERE email=". $email;
        if ($r = mysql_query($query, $dbc)) {
            if($row = mysql_fetch_array($r)) {
                $person = new Person($row);
                return $person;
            }
        }else{
        $error = "Could not find user";
                echo $error;
        return nil;
    }
}
EN

Stack Overflow用户

发布于 2013-04-22 05:28:34

假设您已经正确地定义了$dbc ...

首先,您的查询字符串是错误的,您需要用引号将$email括起来

代码语言:javascript
复制
$query = "SELECT * FROM person WHERE email='". $email . "'";

其次,您的SQL是可注入的,您需要转义post字符串:

代码语言:javascript
复制
$email = mysql_real_escape_string($_POST['email']); 

第三,请不要使用mysql库,因为它们已被弃用,请搜索mysqli并阅读有关它的信息。

票数 0
EN
查看全部 5 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/16136364

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档