首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >存储在数据库中的值

存储在数据库中的值
EN

Stack Overflow用户
提问于 2017-06-24 06:04:25
回答 3查看 71关注 0票数 5

我在我的网站上创建了两个级别的注册,在第一级注册中,我可以将我的值存储在数据库中,而在第二级,我不能存储在同一个表中。

在第一个寄存器中,我使用了一个insert查询,在同一个表的第二级寄存器中,我使用了一个update查询。

如果我在能够存储的条件下给出了直接行值,那么如果我给出的是user_id,那么我就不应该接受。

第一次登记:

代码语言:javascript
运行
复制
public function register($uname,$umail,$upass,$mobile,$gender)
    {
        try
        {
            $new_password = password_hash($upass, PASSWORD_DEFAULT);

            $stmt = $this->conn->prepare("INSERT INTO users(user_name,user_email,user_pass,mobile,gender) 
                                                       VALUES(:uname, :umail, :upass, :mobile, :gender )");

            $stmt->bindparam(":uname", $uname);
            $stmt->bindparam(":umail", $umail);
            $stmt->bindparam(":upass", $new_password);
            $stmt->bindparam(":mobile", $mobile);
            $stmt->bindparam(":gender", $gender);



            $stmt->execute();   

            return $stmt;   
        }
        catch(PDOException $e)
        {
            echo $e->getMessage();
        }               
    }

第二份登记册:

代码语言:javascript
运行
复制
public function register1($marital_status,$applicant_photo,$date_of_birth,$home_name,$birth_time)
    {
        try
        {
                        $stmt = $this->conn->prepare("UPDATE users SET marital_status= :marital_status, applicant_photo=:applicant_photo, date_of_birth=:date_of_birth, home_name=:home_name, birth_time=:birth_time WHERE user_id =':user_id'");


            $stmt->bindparam(":marital_status", $marital_status);
            $stmt->bindparam(":applicant_photo", $applicant_photo);
            $stmt->bindparam(":date_of_birth", $date_of_birth);
            $stmt->bindparam(":home_name", $home_name);
            $stmt->bindparam(":birth_time", $birth_time);   
            $stmt->execute();   

            return $stmt;   
        }
        catch(PDOException $e)
        {
            echo $e->getMessage();
        }               
    }

提前感谢

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2017-07-12 10:45:23

3代码中的错误

  1. 没有将user_id插入到表中
  2. 在第二级注册中,将user_id =':user_id'转换为user_id =:user_id,即删除单引号
  3. bindparam到user_id,即$stmt->bindparam(":user_id", $user_id);

尝试更改此代码

代码语言:javascript
运行
复制
public function register($uname,$umail,$upass,$mobile,$gender,$user_id)
{
    try
    {
        $new_password = password_hash($upass, PASSWORD_DEFAULT);

        $stmt = $this->conn->prepare("INSERT INTO users(user_name,user_email,user_pass,mobile,gender,user_id) 
                                                   VALUES(:uname, :umail, :upass, :mobile, :gender, :user_id )");

        $stmt->bindparam(":uname", $uname);
        $stmt->bindparam(":umail", $umail);
        $stmt->bindparam(":upass", $new_password);
        $stmt->bindparam(":mobile", $mobile);
        $stmt->bindparam(":gender", $gender);
        $stmt->bindparam(":user_id", $user_id);



        $stmt->execute();   

        return $stmt;   
    }
    catch(PDOException $e)
    {
        echo $e->getMessage();
    }               
}

第二次注册

代码语言:javascript
运行
复制
public function register1($marital_status,$applicant_photo,$date_of_birth,$home_name,$birth_time)
{
    try
    {
                    $stmt = $this->conn->prepare("UPDATE users SET marital_status= :marital_status, applicant_photo=:applicant_photo, date_of_birth=:date_of_birth, home_name=:home_name, birth_time=:birth_time WHERE user_id =:user_id");


        $stmt->bindparam(":marital_status", $marital_status);
        $stmt->bindparam(":applicant_photo", $applicant_photo);
        $stmt->bindparam(":date_of_birth", $date_of_birth);
        $stmt->bindparam(":home_name", $home_name);
        $stmt->bindparam(":birth_time", $birth_time);   
        $stmt->execute();   

        return $stmt;   
    }
    catch(PDOException $e)
    {
        echo $e->getMessage();
    }               
}
票数 2
EN

Stack Overflow用户

发布于 2017-06-24 06:10:10

您需要像这样将$user_id作为参数传递给functionbind

1 :失踪bind bind user_id

$stmt->bindparam(":user_id", $user_id);

2 :并删除单引号

代码语言:javascript
运行
复制
user_id =':user_id' 

更改为

代码语言:javascript
运行
复制
  user_id =:user_id
票数 1
EN

Stack Overflow用户

发布于 2017-06-24 06:14:55

使用这个

代码语言:javascript
运行
复制
$stmt = $this->conn->prepare("UPDATE users SET marital_status= :marital_status, applicant_photo=:applicant_photo, date_of_birth=:date_of_birth, home_name=:home_name, birth_time=:birth_time WHERE user_id =:user_id");

$stmt->bindparam(":marital_status", $marital_status);
$stmt->bindparam(":applicant_photo", $applicant_photo);
$stmt->bindparam(":date_of_birth", $date_of_birth);
$stmt->bindparam(":home_name", $home_name);
$stmt->bindparam(":birth_time", $birth_time);   
$stmt->bindparam(":user_id", $user_id);   
$stmt->execute();   
return $stmt;  

我想它会对你有用的。

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

https://stackoverflow.com/questions/44733360

复制
相关文章

相似问题

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