0

我有一个将新用户插入数据库的功能。如果输入有点糟糕或者用户名或电子邮件已经存在,我希望它返回 false。

这是它的样子:

public function input( $username, $password, $email ){
    if( $stmt = $this->mysqli->prepare("INSERT INTO users (username, password, email) VALUES (?, ?, ?)" )){

        $stmt->bind_param('sss', $username, $password, $email);
        $stmt->execute();
        $stmt->close();
        $this->mysqli->close();

        return true;
    }
    else{
        return false;
    }
}

在我尝试创建副本之前,它工作得非常好,它返回 true,但不会影响数据库中的表数据,正如我所见。

4

2 回答 2

2
return !!$this->mysqli->insert_id; // instead of true
于 2012-08-26T17:03:37.647 回答
0

如果失败,您的函数只会返回 false prepare- 在此之后您不会添加数据。

您可以检查您的插入语句的返回值以查看它实际返回的内容,以查看您的 INSERT 是否成功。

此外,您的问题标题和标签表明您正在使用 mysqli,但您的函数调用都是针对mysql_*- 一个或另一个是错字吗?

于 2012-08-26T17:06:14.867 回答