Php Yii,SQL Server查询错误

Php Yii,SQL Server查询错误,php,sql-server,yii,Php,Sql Server,Yii,使用pdo_sqlsrv驱动程序(PHP5.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 Charact

使用pdo_sqlsrv驱动程序(PHP5.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)和SQLServerManagementStudio中工作

当我在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中运行这样的查询?

您的问题已在以下网站上得到回答:

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

我解决了这个问题。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();

仅此而已。

如果您将其放在查询中会怎么样:DECLARE@item varbinary(1728);从Name='CharName'所在的字符中选择库存;我尝试了这个,它选择了我在专栏中的所有内容。错误“致命错误:在第8836行的C:\..\framework\yiilite.php中无效的sql\u显示\u大小”孤立链接是因为它本身没有意义,并且目标资源不保证在将来处于活动状态。请尝试至少包含您链接到的信息摘要。是的,这很糟糕,但如果您检查我提供的链接,更糟糕的是,该人回答了自己的问题,但没有将其发布在这里,因此,对于一个糟糕的问题,您的回答很糟糕。。