即使查询有效,$ result也是空的?

时间:2014-04-24 21:38:55

标签: php sql

当我运行这个SQL时,我收到一条错误消息,好像$ result为空,但是查询已运行,​​我的数据库已更新?为什么结果可以是空的呢?

$query = $mysqli->query("INSERT into `message` (customer_id, msg_headline) values ($customerId, '" . $_POST["messageHeader"] . "')");
    if(isset($_POST["orderId"])) {
        $query .= $mysqli->query("UPDATE `message` SET order_id=IF('".$_POST["orderId"]."' = '', order_id, ".$_POST["orderId"].")");
    }
    $query .= $mysqli->query("INSERT into message_content (message_id, msg) values (LAST_INSERT_ID(), '" . $_POST["messageContent"] . "')");
    $result = mysqli_multi_query($mysqli, $query);
    if ($result) {
        do 
            if (($result = mysqli_store_result($mysqli)) === false && mysqli_error($mysqli) != '') {
                $resultMessage = "Query fail: " . mysqli_error($mysqli);
            }
        } while (mysqli_more_results($mysqli) && mysqli_next_result($mysqli)); // while there are more results
        $messageValid = 1;
        $resultMessage = "Success";
    } else {
        $resultMessage = "Database was not updated: " . mysqli_error($mysqli);
    }

该函数将返回最后的$ resultMessage,即使查询有效!?

1 个答案:

答案 0 :(得分:0)

$result实际上根本不是空的。它只是没有任何东西可以显示,因为它是一个对象'。如果您执行echo $result之类的操作,则输出看起来像Resource id #4

您表示正在显示$resultmessage,我怀疑如果正如您所说,数据库正在更新,那么您将看到"成功"。

你期待看到什么?