3

使用 pdo_sqlsrv 驱动程序 (PHP 5.4) 使用 SQL Server

在我的数据库中,我有varbinary类型和大小为 7584 的列。

当我尝试从该列中获取值时,出现此错误

Invalid sql_display_size in G:\..\..\..\framework\yiilite.php on line 8836

这是查询:

DECLARE @item varbinary(1728); SET @item = (SELECT Inventory FROM Character WHERE Name='CharName'); print @item;

在这种情况下,我得到的正是我需要的尺寸。它适用于普通的 php 查询(不是 PDO)和 SQL Server Management Studio。

当我在 Yii 中运行这段代码时:

$query = "DECLARE @item varbinary(1728); SET @item = (SELECT Inventory FROM Character WHERE Name='CharName'); print @item";
$command=Yii::app()->db->createCommand($query)->query();
$command->read();

我明白了:

SQLSTATE[IMSSP]:查询的活动结果不包含任何字段。

我认为我建立了一个错误的查询。

我的问题是,如何在 Yii 中运行这样的查询?

4

2 回答 2

1

我解决了这个问题。PDO_SQLSRV 驱动程序与 Windows 上的 MS SQL Server 完美配合。

问题是我试图执行错误的查询:

$query = "DECLARE @item varbinary(1728); SET @item = (SELECT Inventory FROM Character WHERE Name='CharName'); print @item";
$command=Yii::app()->db->createCommand($query)->query();

工作查询:

$query = "DECLARE @items varbinary(max);SET @items = (SELECT Inventory FROM Character WHERE Name='$id');Select @items";
            $getI = Yii::app()->db->createCommand($query)->queryScalar();

就这样。

于 2013-02-03T15:33:48.650 回答
0

Yii 论坛已经回答了您的问题:

编辑:在谷歌上的快速搜索为您提供大量有效答案:最有效的答案是 mssql PDO 驱动程序充满了错误,您可以使用工作较少错误的 ODBC 驱动程序。

于 2012-12-21T08:54:50.533 回答