2013-11-26 84 views
1

$ result總是返回true,即使沒有參數傳遞給SQL查詢。 我找不到原因。PHP mysql_query update始終返回true

其他一切都很好,我已經在數據庫中進行了測試。

請幫幫我。

<?php 
    require('dbConnection.php'); 
    $lon = $_POST['lon']; 
    $lat = $_POST['lat']; 
    $time = $_POST['time']; 
    $date = $_POST['date']; 
    $eTime = $_POST['eTime']; 
    $eDate = $date; 
    $orderID = $_POST['orderID']; 


    if($db_found){ 

     $query = "UPDATE `PostmanLocation` 
     SET `longitude`= '$lon',`latitude`= '$lat',`time`= '$time', `date`='$date' 
     WHERE `postID`= '$name'"; 

     $result=0; 

     $result = mysql_query($query) or die("MySQL error:".mysql_error()); 
     echo $result; 
     if($result==1){ 

       $query = " 
       UPDATE `Order` 
       SET `eTime`= '$eTime',`eDate`= '$eDate' 
       WHERE `orderID` = 'orderID'"; 

       $result=0; 
       $result = mysql_query($query); 
       echo $result; 
       if($result == 1){ 
        $response["success"] = 1; 

       } else{ 
        $response["success"] =0; 
       } 

     }else{ 
      $response["success"] = 0; 
     } 
     echo json_encode($response); 
    } 
    ?> 

我不知道要添加什麼細節,但網站總是提醒我,我的帖子主要是代碼;請添加更多的細節。 如果需要更多細節,我會在下面回答。

+1

如果你的意思是你的查詢中的某些變量不存在,這沒什麼大不了的,空字符串將被髮送到數據庫,所以沒有錯誤。你應該用'isset()'或類似的東西測試數據的存在。 – Jasper

+0

如果將空白字符串發送到數據庫,表格日期是否會更新爲空白? – user2965590

+0

應該是這樣。傳遞的空白字符串將覆蓋那些行/列中已存在的內容。 – Jasper

回答

5
$result = mysql_query($query) or die("MySQL error:".mysql_error()); 

在上面的指令,$result永遠不會是假的:要麼mysql_query返回true,否則腳本死亡。

如果你想要,而要檢查你的UPDATE查詢有任何影響的,您可以使用此:

Use mysql_affected_rows() to find out how many rows were affected by a DELETE, INSERT, REPLACE, or UPDATE statement.

http://us3.php.net/manual/en/function.mysql-affected-rows.php

還要注意的是mysql_功能已被棄用。你應該切換到PDO或mysqli。

+0

好的調用,''trigger_error()'可以用來代替,如果這是不可取的。 – Jasper

+0

@Jasper,感謝您糾正我笨拙的英語:-p – Matthew

+0

@Matthew,Jasper,謝謝你們倆。但是,在我刪除「或死(」MySQL錯誤:「。mysql_error())」「後,$ result仍然爲真。 – user2965590