2013-08-18 73 views
-4

我的問題是總是結果大於0,並且他一直告訴數據庫裏面有東西,但實際上數據庫是空的,可能是什麼原因?我一定在這裏做錯了事。即使數據庫爲空時,SELECT也會返回一些東西

在此先感謝。

<?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); 
?> 
+0

只看到mysql_query的文檔我確信你可以自己回答這個問題。 – 2013-08-18 07:02:32

+4

想一想'mysql_query'返回的是什麼,以及在這裏與'> 0'比較什麼。 *「如果數據庫結果> 0」* - 這甚至意味着什麼? – deceze

+0

你應該避開使用'mysql_ *'。按照PHP文檔:「此擴展在PHP 5.5.0以前不推薦使用,將來會被刪除,而應該使用MySQLi或PDO_MySQL擴展」 – kaizenCoder

回答

1

這是正確的行爲。 mysql_query在選擇查詢時返回RESOURCE或錯誤,並且您不能執行if ($result > 0)。所以,如果查詢正確,$結果鑄造爲int將永遠大於0,您應該使用if (mysql_num_rows($result) > 0)

0

試試這個:

$結果= mysql_num_rows(的mysql_query(「SELECT * FROM push_notification_users WHERE唯一標識符=' 」。$ varGet2。 「」「)); if($ result> = 1) { echo'UDID在數據庫中找到。未添加。'; }

相關問題