Php 在比较MYSQL查询的结果时帮助区分IF-THEN
我的邀请系统有问题。if语句似乎被打破了。它显示消息Fail,但UPDATE语句仍在执行。为什么THEN和ELSE都执行死刑Php 在比较MYSQL查询的结果时帮助区分IF-THEN,php,mysql,select,invite,Php,Mysql,Select,Invite,我的邀请系统有问题。if语句似乎被打破了。它显示消息Fail,但UPDATE语句仍在执行。为什么THEN和ELSE都执行死刑 $dbConn = new dbConn(); // Check if POST user_username and user_hash are matching and valid; both are hidden for fields $sql = "SELECT user_username " . "FROM table_users " . "WH
$dbConn = new dbConn();
// Check if POST user_username and user_hash are matching and valid; both are hidden for fields
$sql = "SELECT user_username "
. "FROM table_users "
. "WHERE user_id=".mysql_real_escape_string($_POST["user_id"])." "
. "AND user_hash='".mysql_real_escape_string($_POST["user_hash"])."' "
. "AND user_enabled=0;";
$objUser = $dbConn->query($sql);
// If result contains 1 or more rows
if( mysql_num_rows($objUser) != NULL ){
$objUser = mysql_fetch_assoc($objUser);
$ssnUser->login( $objUser["user_username"] );
$sql = "UPDATE table_users SET "
. "user_enabled=1, "
. "user_first_name='".mysql_real_escape_string($_POST["user_first_name"])."', "
. "user_last_name='".mysql_real_escape_string($_POST["user_last_name"])."', "
. "user_password='".mysql_real_escape_string( md5($_POST["user_password"]) )."' "
. "WHERE user_id=".mysql_real_escape_string($_POST["user_id"]).";";
$dbConn->query($sql);
echo "Success";
header( "Refresh: 5; url=/account/?action=domains" );
} else {
echo "Fail";
}
此dbConn类如下所示:
class dbConn{
var $username = "xxxx_admin";
var $password = "xxxxxxxx";
var $server = "localhost";
var $database = "xxxx";
var $objConn;
function __construct(){
$conn = mysql_connect( $this->server, $this->username, $this->password, true );
if( !$conn ){
die("Could not connect: ".mysql_error() );
} else {
$this->objConn = $conn;
}
unset($conn);
}
function __destruct(){
mysql_close( $this->objConn );
unset( $this );
}
function query( $query, $db = false ){
mysql_select_db( $db != false ? $db : $this->database, $this->objConn );
$result = mysql_query( $query );
unset($query,$db);
return $result;
}
}
我在你的代码中没有看到任何奇怪的东西。您的登录方法中是否存在失败调用?无论哪种方式,我都会改变路线:
if( mysql_num_rows($objUser) != NULL ){
致:
然后,放一个出口;在标题行后呼叫。这并没有解决问题:{如果我对UPDATE语句进行注释,我会收到成功消息。??~!这就是您正在运行的代码吗?您确定注释行中没有多余的}括号吗?我需要一个骰子;在标题后面。不是出口;。我知道PHP手册上说它们是一样的,但显然不是。
$rowCount = mysql_num_rows($objUser);
if($rowCount and $rowCount > 0){