php7.1环境,用 mssqlnative 怎样得到 存储过程 结果集?
环境:
1.php 7.01
2.数据库是mssql2008 R2 64bit
3.引用http://adodb.org 框架(可能与这个没有关系).
4.查询没有问题。如下
include_once(IA_ROOT.'\addons\adodb5\adodb.inc.php');
$this->db= ADONewConnection('mssqlnative');
$this->db->setConnectionParameter('ReturnDatesAsStrings',false);
$this->db->setConnectionParameter('characterSet','UTF-8');
$ADODB_FETCH_MODE = ADODB_FETCH_BOTH;
$this->db->connect('127.0.0.1','sa','password','db');
$sql="select a,b from table ";
$rs = $db->Execute($sql);
while( !$rs->EOF ) {
$account[]=array(
'account'=>$rs->fields['account'],
'accountname'=>$accountname[$rs->fields['account']],
'natbalance'=>$rs->fields['natbalance']
);
$rs->MoveNext();
}
$rs->Close();
5.执行存储过程,执行成功,但是取不了结果集。如下
include_once(IA_ROOT.'\addons\adodb5\adodb.inc.php');
$this->db= ADONewConnection('mssqlnative');
$this->db->setConnectionParameter('ReturnDatesAsStrings',false);
$this->db->setConnectionParameter('characterSet','UTF-8');
$ADODB_FETCH_MODE = ADODB_FETCH_BOTH;
$this->db->connect('127.0.0.1','sa','password','db');
$sql="exec sp_temp 'a','b' ";
$rs = $db->Execute($sql);
while( !$rs->EOF ) {
//空
$rs->MoveNext();
}
$rs->Close();
6.用传参方法也是一样,执行成功,但是取不了结果集。如下
include_once(IA_ROOT.'\addons\adodb5\adodb.inc.php');
$this->db= ADONewConnection('mssqlnative');
$this->db->setConnectionParameter('ReturnDatesAsStrings',false);
$this->db->setConnectionParameter('characterSet','UTF-8');
$ADODB_FETCH_MODE = ADODB_FETCH_BOTH;
$this->db->connect('127.0.0.1','sa','password','db');
$parameter1Name = 'n1';
$parameter1value = 'v1';
$parameter2Name = 'n2';
$parameter2value = 'v2';
$procedure = $this->db->prepareSp('sp_temp');
if (!$procedure)
die ('Invalid or inaccessible stored procedure name');
$ok = $this->db->inParameter($procedure,$parameter1Name,$parameter1value);
$ok = $this->db->inParameter($procedure,$parameter2Name,$parameter2value);
$rs = $this->db->execute($procedure);
print_r($rs); //也是不行