2012-10-15 75 views
0
$query = ' Declare @MemCode Varchar(12); 
       Declare @ConCounter decimal(28,0); 
       Set @MemCode = null; 
       Set @ConCounter = null; 

       EXECUTE spQMInsEventMember_TMS 
       "'.$masterEventCode.'", 
       "'.$eventCode.'", 
       '.$memberContactTitle.', 
       "'.$guestFirstName.'", 
       "'.$guestLastName.'", 
       '.$address.', 
       '.$townDescription.', 
       '.$countryCode.', 
       '.$postZip.', 
       '.$STD.', 
       '.$phone.', 
       "'.$guestEmail.'", 
       '.$isMember.', 
       '.$divisionCode.', 
       '.$statusCode.', 
       '.$subStatusCode.', 
       '.$memberTypeCode.', 
       '.$memberTitles.', 
       '.$memberSubType.', 
       '.$classCode.', 
       '.$subClassCode.',@MemCode OUTPUT,@ConCounter OUTPUT; 
       SELECT @MemCode AS member_code, @ConCounter AS contact_counter;'; 
    //print_r($query); 

    $res = $this->dbh->query($query); 
print_r $res; 

输出工作:无法获取代码使用PHP PDO

object(stdClass)#1 (2) { ["RESULT"]=> string(2) "OK" ["CONTACTCOUNTER"]=> object(stdClass)#2 (1) { ["queryString"]=> string(522) " Declare @MemCode Varchar(12); Declare @ConCounter decimal(28,0); Set @MemCode = null; Set @ConCounter = null; EXECUTE spQMInsEventMember_TMS "AC", "LAC1112", NULL, "Fred", "Smith", NULL, NULL, NULL, NULL, NULL, NULL, "[email protected]", 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,@MemCode OUTPUT,@ConCounter OUTPUT; SELECT @MemCode AS member_code, @ConCounter AS contact_counter;" } } 
+0

如果我参加了输出和复制并粘贴到SQLServer的管理工具,它工作正常。 我所要做的就是调用一个存储过程并获得结果集。 正如我所说的在SQLServer中运行,返回member_code和contact_counter的正确结果。 – user1741240

回答

0

查询返回一个PDOStatement对象对象,而不是结果阵列。

要获取所有结果一次,尝试:

$sth = $this->dbh->query($query); 

if(!$sth) 
{ 
    // Query failed. Find out Why 
    $error = sth->errorInfo(); 
    print_r $error; 
} 
else 
{ 
    // We got results. 
    $res = sth->fetchAll(); 
    print_r $res; 
} 
+0

返回空结果集。 – user1741240

+0

只看了一下安装的PDO库。 (我无法控制这些)。 我相信它是使用pdo_dblib。 还安装了pdo_sqlite。 是否有更好的方法连接到SQLServer? – user1741240

+0

向我显示您当前用于连接PDO的代码?另外,print_r(PDO :: getAvailableDrivers())的结果是什么? – MatthewMcGovern