UPDATE查询不起作用 - PHP / MySQL / bind_param

时间:2016-07-20 17:23:49

标签: php mysql bindparam

这是PHP函数中的一个简单的更新代码,通过来自前端的GET调用(不确定这是否重要),代码将特定时区值转换为unix时间戳 -

    $oldDate = null;
    $newDate = null;
    $ctr = 0;
    $timeStamp = array();
    $query=  $this->userDatabaseConnection->stmt_init();
    $query->prepare("SELECT Timestamp from Transaction INNER JOIN `Order` ON `Order`.TransactionId = Transaction.TransactionId");
    $query->execute();
    $query->bind_result($tID); //this holds the current time zone values

        while($query->fetch()){

        $oldDate = $tID;

        array_push($timeStamp, $oldDate);
    }

    $query->close();


    foreach($timeStamp as $row){

        $newDate = strtotime($row);


        $queryUpdate= $this->userDatabaseConnection->stmt_init();

        $queryUpdate->prepare("UPDATE `Order` SET OrderDate=? WHERE TransactionId=?");
        error_log("ERROR!",0);

        $queryUpdate->bind_param('is', $unixTS, $oldTS);
        $unixTS = $newDate;
        $oldTS = $row;
        $queryUpdate->execute();
        $queryUpdate->close();

        $ctr++;
    }

    if($ctr == 88){
        return true;
    }
    else{
        return false;
    }

}

$ctr变量返回需要更新的总行数 - 等于正确的值,因此返回true到我的前端Angular控制器。

我尝试回显$newDate$row值 - 它们似乎也是正确的。

但它只是不更新​​我的表。有人可以帮我找出原因吗?我在这里错过了什么吗?错误日志确实在我的Apache日志中显示了消息 - 但我似乎无法弄清楚导致它的原因。

0 个答案:

没有答案