0

我正在使用 PHP 和 Zend 框架创建一个网站。我正在使用 sqlsrv 适配器与我的数据库通信。我正在尝试编写插入查询并存储新行的 ID。我写了一个这样的 SQL 查询:

$db = Zend_Db_Table::getDefaultAdapter();               
$id = $db->fetchOne("
    INSERT INTO    MyTable
    (Title, CreatedBy, Created, LastUpdatedBy, LastUpdated)
    SELECT  'MY Title',
        UserTable.UserId,
        CONVERT(datetime, '".$this->details["Created"]."', 120),
        UserTable.UserId,
        CONVERT(datetime, '".$this->details["LastUpdated"]."', 120)
    FROM    UserTable
    WHERE   UserName = '".$this->details["CreatedBy"]."'
    SELECT  CAST(SCOPE_IDENTITY() AS int) AS Id"
);

但它会产生此错误:

'Zend_Db_Statement_Sqlsrv_Exception' with message 'The active result for the query contains no fields.

如何避免此错误并运行此查询并检索插入的行 ID?

4

1 回答 1

1

您似乎在这里使用了错误的方法。

您应该使用insert() Zend_Db_Table 的方法:-

$table = new Zend_DB_Table(array('name' => 'mytable', primary => 'myPrimaryKey'));
$data = array()// of data to be inserted
$id = $table->insert($data);
于 2012-06-06T10:50:19.393 回答