T-SQL:如何使用 PEAR DB 从 INSERT 语句中检索 OUTPUT?
T-SQL : How can I retrieve the OUTPUT from an INSERT statement with PEAR DB?
这是我第一次使用T-SQL
我目前正在尝试使用此查询从 T-SQL 中的 INSERT 语句获取最后插入的 ID:
INSERT INTO TICKET( STATE, RECORD_DATE, ID_USER, TICKET_TYPE, TICKET_COM)
OUTPUT INSERTED.ID_TICKET AS lastId
VALUES ( 1, CONVERT(datetime, '24/02/2022 09:25:53'), 100, 1, 'It does not work')
如你所料,ID_TICKET是身份,auto_increment。
当我 运行 通过 MS SQL server management studio 时,我得到了预期的结果:一行,具有唯一的 lastId 列,其中包含最后插入的 id 的值。
但是在 PHP 上,当我使用来自 PEAR 数据库的 query()
方法 运行 进行此操作时,我 运行 遇到了一些问题。
通过阅读文档,在 SELECT 查询的情况下,DB->query()
只会 return 一个资源,而 INSERT 查询只会 return 一个 DB_OK 类型的答案: 这正是我在 PHP 中得到的。
因此我的问题是:如何使用 PEAR DB 从 INSERT 语句中检索 OUTPUT?
我想继续使用 PEAR,因为我正在向严重依赖它的现有内部网添加功能。
它使用 SQL Server 9.0 使用 PHP 5.2.9 和 PEAR DB 1.1.2.2.
托管在 IIS 7 上
最后,我只是通过删除 OUTPUT INSERTED.ID_TICKET AS lastId
行做了一个简单的 INSERT。
然后我在 SELECT @@IDENTITY as lastId
之后立即进行了第二次 query() 调用,现在它给出了所需的结果。
与 Álvaro González 的建议差不多。
现在,在 Dan Guzman 的建议下,在我原来的 INSERT
开头添加 SET NOCOUNT ON;
和 OUTPUT
子句确实解决了问题!
我现在根据需要得到一个具有唯一行和列 lastId 的结果集。
我向你们两位致敬。
这是我第一次使用T-SQL
我目前正在尝试使用此查询从 T-SQL 中的 INSERT 语句获取最后插入的 ID:
INSERT INTO TICKET( STATE, RECORD_DATE, ID_USER, TICKET_TYPE, TICKET_COM)
OUTPUT INSERTED.ID_TICKET AS lastId
VALUES ( 1, CONVERT(datetime, '24/02/2022 09:25:53'), 100, 1, 'It does not work')
如你所料,ID_TICKET是身份,auto_increment。 当我 运行 通过 MS SQL server management studio 时,我得到了预期的结果:一行,具有唯一的 lastId 列,其中包含最后插入的 id 的值。
但是在 PHP 上,当我使用来自 PEAR 数据库的 query()
方法 运行 进行此操作时,我 运行 遇到了一些问题。
通过阅读文档,在 SELECT 查询的情况下,DB->query()
只会 return 一个资源,而 INSERT 查询只会 return 一个 DB_OK 类型的答案: 这正是我在 PHP 中得到的。
因此我的问题是:如何使用 PEAR DB 从 INSERT 语句中检索 OUTPUT?
我想继续使用 PEAR,因为我正在向严重依赖它的现有内部网添加功能。 它使用 SQL Server 9.0 使用 PHP 5.2.9 和 PEAR DB 1.1.2.2.
托管在 IIS 7 上最后,我只是通过删除 OUTPUT INSERTED.ID_TICKET AS lastId
行做了一个简单的 INSERT。
然后我在 SELECT @@IDENTITY as lastId
之后立即进行了第二次 query() 调用,现在它给出了所需的结果。
与 Álvaro González 的建议差不多。
现在,在 Dan Guzman 的建议下,在我原来的 INSERT
开头添加 SET NOCOUNT ON;
和 OUTPUT
子句确实解决了问题!
我现在根据需要得到一个具有唯一行和列 lastId 的结果集。
我向你们两位致敬。