2013-11-26 53 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