Php 如果条件与真/假比较
嘿,伙计们,我正在使用这个简单的函数来检查用户是否已经尝试搜索一些东西了。我的代码如下所示:Php 如果条件与真/假比较,php,Php,嘿,伙计们,我正在使用这个简单的函数来检查用户是否已经尝试搜索一些东西了。我的代码如下所示: public function getNumberOfQuery(){ $success = false; try{ $con = new PDO( DB_HOST, DB_USER, DB_PASS ); $con->setAttribute( PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION );
public function getNumberOfQuery(){
$success = false;
try{
$con = new PDO( DB_HOST, DB_USER, DB_PASS );
$con->setAttribute( PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION );
$sql = "SELECT * FROM users WHERE username = :user LIMIT 1";
$stmt = $con->prepare( $sql );
$stmt->bindValue( "user", $this->getUsername(), PDO::PARAM_STR );
$stmt->execute();
while ($row = $stmt->fetch()){
if ($row['query'] < $row['max_query'])
return TRUE;
}
}catch(PDOExeption $e){
echo $e->getMessage();
echo $con->errorInfo();
}
}
问题是,尽管我手动将查询放在数据库中比max_查询大,但这里的代码仍然在执行。这不应该是对的?
有人能看看它,告诉我我做错了什么吗?我从来没有使用过真/假,所以可能我只是不理解它的权利
if ($data->getNumberOfQuery() == TRUE); {
尝试删除;在之后,其他人已经发现了语法错误,但下面是解释:
if (...); {
// ^ - wrong
...
}
如果条件为true,if语句将执行以下语句。注意:
if (true)
echo 'foo';
echo 'bar';
不使用括号,只有下一行属于if语句。
如果要将整个代码块绑定到If语句,请使用括号将其分组:
if (true) {
echo 'foo';
echo 'bar';
}
现在,你要做的是:
if (...)
;
{
...
}
您将立即使用;,终止if后面的语句;,因此,if执行一个空语句。然后始终执行下面的代码块{..},因为它根本不与if绑定。好眼力!请注意,每次调用此方法时,这将创建到数据库的新连接。将计数与TRUE进行比较在概念上是错误的,如果我看到这一行,我将开始查找错误。如果$data->getNumberOfQuery>0{更好。
if (...)
;
{
...
}