Php 为什么($signup->;signup(…))会返回消息";“注册失败”;注册成功了吗?
所以我注意到Php 为什么($signup->;signup(…))会返回消息";“注册失败”;注册成功了吗?,php,pdo,Php,Pdo,所以我注意到php中有一些我不太理解的东西 假设我有一个简单的注册功能,如下所示: Class signup extends Connect{ function __construct(){ parent::__construct(); parent::connect(); } function signup($username,$password){ $res=$this->conn->prepare("INSERT INTO users(username,password) V
php
中有一些我不太理解的东西
假设我有一个简单的注册功能
,如下所示:
Class signup extends Connect{
function __construct(){
parent::__construct();
parent::connect();
}
function signup($username,$password){
$res=$this->conn->prepare("INSERT INTO users(username,password)
VALUES(?,?)");
$res->bindparam(1,$username);
$res->bindparam(2,$password);
$res->execute();
}
}
require("signup.php");
$signup=new signup();
if($signup->signup(...)){
echo "Signed up";
}
else{
echo "Signup failed";
}
if(!$signup->signup(...)){
echo "Signed up";
}
else{
echo "Signup failed";
}
在另一个文件中,我想检查注册是否成功,如下所示:
Class signup extends Connect{
function __construct(){
parent::__construct();
parent::connect();
}
function signup($username,$password){
$res=$this->conn->prepare("INSERT INTO users(username,password)
VALUES(?,?)");
$res->bindparam(1,$username);
$res->bindparam(2,$password);
$res->execute();
}
}
require("signup.php");
$signup=new signup();
if($signup->signup(...)){
echo "Signed up";
}
else{
echo "Signup failed";
}
if(!$signup->signup(...)){
echo "Signed up";
}
else{
echo "Signup failed";
}
如果我成功注册,此语句将返回Sigup failed,如果失败,则返回Sigup
我假设这意味着如果函数
注册成功运行,这意味着注册成功,因此消息应该是已注册
但是如果我真的使用在if
语句中,如下所示:
Class signup extends Connect{
function __construct(){
parent::__construct();
parent::connect();
}
function signup($username,$password){
$res=$this->conn->prepare("INSERT INTO users(username,password)
VALUES(?,?)");
$res->bindparam(1,$username);
$res->bindparam(2,$password);
$res->execute();
}
}
require("signup.php");
$signup=new signup();
if($signup->signup(...)){
echo "Signed up";
}
else{
echo "Signup failed";
}
if(!$signup->signup(...)){
echo "Signed up";
}
else{
echo "Signup failed";
}
在这种情况下,如果数据正确且注册成功,则将回显注册的
不要误解我的问题,代码工作正常,没有错误,我只是好奇为什么它是这样工作的
谢谢你的回答
PS:上面的代码不是完整的代码signup()
方法没有return
语句,因此它默认返回null
,这是错误的。您需要返回查询是否成功的指示
function signup($username,$password){
$res=$this->conn->prepare("INSERT INTO users(username,password) VALUES(?,?)");
$res->bindparam(1,$username);
$res->bindparam(2,$password);
return $res->execute();
}