-4

我的问题是结果总是大于0,而且他一直在说数据库里面有东西,但实际上数据库是空的,可能是什么原因?我一定在这里做错了什么。

提前致谢。

<?php
   header("Content-type: text/html; charset=utf8");

   $connection = mysql_connect("localhost","username","password"); //   Your Username and Password
   if(!$connection)
   {
       die("database connection failed:" . mysql_error());       
   }
   $db = mysql_select_db("database_name",$connection); //   The database name
   if(!db)
   {
       die("database connection failed:" . mysql_error());
   }
   mysql_query("SET NAMES 'utf8'",$connection);
?>

<?php

    $varGet1 = $_POST['deviceToken'];
    $varGet2 = $_POST['uniqueIdentifier'];

    $result = mysql_query("SELECT * FROM `push_notification_users` WHERE uniqueIdentifier = '".$varGet2."'");
    if ($result > 0)
    {
        echo 'UDID found on Database. Not added.'; 
    }
    else
    {
        $result = mysql_query("INSERT INTO `push_notification_users` (`deviceToken`,`uniqueIdentifier`) VALUES ('".$varGet1."','".$varGet2."')");

        if($result === FALSE)
        {
            die(mysql_error());
        }
        else
        {
            $message = "UDID didnt found on Database. Added successfully";
            echo $message;
        }
    }

    mysql_close($connection);
?>
4

2 回答 2

1

这是正确的行为。mysql_query 在选择查询错误时返回 RESOURCE 或 false,而您不能这样做if ($result > 0)。因此,如果查询正确,则转换为 int 的 $result 将始终大于 0。您应该使用if (mysql_num_rows($result) > 0)

于 2013-08-18T07:05:57.413 回答
0

尝试这个:

$result = mysql_num_rows(mysql_query("SELECT * FROM push_notification_usersWHERE uniqueIdentifier = '".$varGet2."'")); if ($result >= 1) { echo 'UDID 在数据库中找到。未添加。'; }

于 2013-08-18T08:09:50.473 回答