方法:
public function checkName($name)
{
$this->check = $this->pdo->prepare("SELECT * FROM users WHERE username = :name");
$this->check->execute(array(":name" => $name));
if ($this->check->rowCount() > 0)
{
return true;
}
}
此代码显然不起作用:
if (!$user->checkName('Jony'))
{
echo '1';
}
即使我在数据库中有Jony,它也会回显'1'。
此代码有效:
if ($user->checkName('Jony') != true)
{
echo '1';
}
这不会回显'1',但如果我不包含jony,则回显1,而不是在数据库中。
我认为你可以做if if(true)然后......,你真的必须包括if!= true或if == true?
答案 0 :(得分:7)
您可以通过返回比较结果来简化您的功能。
public function checkName($name)
{
$this->check = $this->pdo->prepare("SELECT * FROM users WHERE username = :name");
$this->check->execute(array(":name" => $name));
return $this->check->rowCount() > 0;
}
您还需要移动not运算符。
!$user->checkName('Jony')
答案 1 :(得分:4)
让您更新问题,我可以看到问题所在。 这句话是完全错误的:
if ($user->!checkName('Jony'))
您应该以这种方式测试值:
if (!$user->checkName('Jony'))
但是,如果你正确粘贴它,你的代码根本不起作用,因为它会导致解析错误,你可以在这里看到:http://ideone.com/CPfkNi