PDO - 当 AzureSQL 返回结果时出现“无字段”结果


PDO - 'no fields' result when AzureSQL is returning a result

我正在使用PDO::query来运行以下SQL语句:

INSERT INTO pages (template_id,user_id,page_default,page_internal_title,page_menu_text,page_nav_link,globalcontent_id,page_parent_id,page_order,page_active,page_show_in_menu,page_hide,page_created,page_updated,page_deleted,page_type) values (
4,1,'n','Test',
...snip...
'n','page');SELECT LAST_INSERT_ID=@@IDENTITY

如果我在 AzureSQL 管理器中运行,则直接按预期执行插入并按预期返回last_insert_id。

但是,当我对从 PDO::query 返回的语句对象调用 fetchAll() 时,它会抛出"查询的活动结果不包含字段"异常。PDO::query 正在工作,因为正在插入行,但好像选择失败(但此时它没有引发异常),或者我缺少一些明显的东西(很可能)。

任何帮助都会很棒!

干杯!

你试过PDO::lastInsertId()吗?

我很确定我读过有关 MSSQL 不支持多个结果集的 PDO,但目前我找不到参考:-/。如果你的方案允许你使用上述函数,这可能是最简单的解决方案。