我有一个将新用户插入数据库的功能。如果输入有些不好或者用户名或电子邮件已经令人兴奋,我希望它返回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,但不会影响数据库中的tabledata,我可以看到。
答案 0 :(得分:2)
return !!$this->mysqli->insert_id; // instead of true
答案 1 :(得分:0)
如果prepare
失败,您的函数只返回false - 您之后才会添加数据。
您可以检查insert语句的返回值,以查看它实际返回的内容,以查看INSERT是否成功。
此外,您的问题标题和标签表明您正在使用mysqli,但您的函数调用都是mysql_*
- 是一个或另一个错字?