Php MySQL:Can';无法获取最后一个插入ID()

Php MySQL:Can';无法获取最后一个插入ID(),php,mysql,fuelphp,Php,Mysql,Fuelphp,我正在使用FuelPHP框架和MySQL创建一个应用程序,并尝试使用AJAX更新/插入数据库中已有项目的新日志。 这是我的MySQL代码: UPDATE `work_orders` SET `status_id`='{$status}' WHERE `id` = '{$wo_id}'; INSERT INTO `work_order_logs`(`id`, `work_order_id`, `log_text`, `status_id`) VALUES ('{$id}', '{$wo_id}',

我正在使用FuelPHP框架和MySQL创建一个应用程序,并尝试使用AJAX更新/插入数据库中已有项目的新日志。 这是我的MySQL代码:

UPDATE `work_orders` SET `status_id`='{$status}' WHERE `id` = '{$wo_id}';
INSERT INTO `work_order_logs`(`id`, `work_order_id`, `log_text`, `status_id`) VALUES ('{$id}', '{$wo_id}', '{$text}', '{$status}')
    ON DUPLICATE KEY UPDATE `log_text`='{$text}',`status_id`='{$status}';

SELECT LAST_INSERT_ID() as id;
当从phpmyadmin执行此代码时,它会成功运行并返回id,但是从FuelPHP执行时,它只返回
1
,我认为这意味着操作成功

FuelPHP代码:

public static function updateLogById($id, $wo_id, $text, $status)
{
    try {
        $log_query = \DB::query("
            UPDATE `work_orders` SET `status_id`='{$status}' WHERE `id` = '{$wo_id}';
            INSERT INTO `work_order_logs`(`id`, `work_order_id`, `log_text`, `status_id`) VALUES ('{$id}', '{$wo_id}', '{$text}', '{$status}')
            ON DUPLICATE KEY UPDATE `log_text`='{$text}',`status_id`='{$status}';

            SELECT LAST_INSERT_ID() as id;
        ")->execute();
    } catch(\Database_Exception $e) {       
        return array(false, \DBE::handle_error());
    }
    return array(true, $log_query);
}
谁能看出来,出什么事了?
感谢您的回答。

将插入与将修复插入的更新分开

为了获得正确的结果,在这种情况下,您必须提供查询类型,因为它不是为基于查询进行超级智能结果类型检测而设计的。我认为当您提供以下第二个参数时,您的查询应该可以工作:

$result = \DB::query($query, \DB::SELECT);

这将为您提供一个结果对象,您可以从中获取id。

我认为问题在于,您在同一查询中尝试
更新
选择
,但每个语句都在单独的查询/命令中。。?