dongliugu8843 2013-03-31 13:08
浏览 246
已采纳

PHP:使用mysqli查询检查行是否存在

i have this two function for create user.first function for insert/create user and other function for check if user was/exist in MySql database. but when i send data i see blank page for die(); (if user exsit or user not exist) how to fix this error? and how to print error list in red box i.e:

- this user not activate 

- email is empty 

- ....

my class:

public function createUser($email, $password, $salt, $verification) {

if($this->checkUserFound($email) != true ){die();}

    $query = "INSERT INTO tbUsers (email, password, user_salt, is_verified, is_active, is_admin, verification_code) "
    . "VALUES (?, ?, ?, ?, ?, ?, ?)";

    $stmt = $this->_db->prepare($query);

    $ver = 0;
    $act = 1;
    $adm = 0;

    $stmt->bind_param("sssiiis", $email, $password, $salt, $ver, $act, $adm, $verification);

    if ($stmt->execute()) {
        return true;
    }

    return false;
}

public function checkUserFound($email) {
    $query = "SELECT email FROM tbUsers where email = ?";

    $stmt = $this->_db->prepare($query);

    $stmt->bind_param("s", $email);

    if ($stmt->execute()) {

        $stmt->bind_result($email);

        //fetch first row of results
        $stmt->fetch();
        return false;
    }

    return true;
}
  • 写回答

2条回答 默认 最新

  • douguizhuang8276 2013-03-31 13:28
    关注

    This is always going to return FALSE (assuming the query successfully executes):

    if ($stmt->execute()) {
    
        $stmt->bind_result($email);
    
        //fetch first row of results
        $stmt->fetch();
        return false;
    }
    

    You want to change it to:

    if ($stmt->execute()) {
    
        $stmt->store_result();
    
    
        return 0 == $stmt->num_rows ? FALSE : TRUE;
    
    }
    

    Then, if the user is found, it will return TRUE; if not if will return FALSE.

    Also, I think it make more sense (semantically) to have this:

    if($this->checkUserFound($email)){die();}
    

    ... because you want it to return TRUE if the user is found (and end the script because you don't want to insert a duplicate)./

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

报告相同问题?

悬赏问题

  • ¥20 测距传感器数据手册i2c
  • ¥15 RPA正常跑,cmd输入cookies跑不出来
  • ¥15 求帮我调试一下freefem代码
  • ¥15 matlab代码解决,怎么运行
  • ¥15 R语言Rstudio突然无法启动
  • ¥15 关于#matlab#的问题:提取2个图像的变量作为另外一个图像像元的移动量,计算新的位置创建新的图像并提取第二个图像的变量到新的图像
  • ¥15 改算法,照着压缩包里边,参考其他代码封装的格式 写到main函数里
  • ¥15 用windows做服务的同志有吗
  • ¥60 求一个简单的网页(标签-安全|关键词-上传)
  • ¥35 lstm时间序列共享单车预测,loss值优化,参数优化算法