private function _SP()
{
$sql = "EXEC [DBNAME].[dbo].[SP_NAME] (?), (?), (?)";
$sql = $this->_dbconn->_dbcon->prepare($sql);
//$sql->execute(array($this->_cid, $this->_action_id, $this->_date));
$sql->bindParam(1, $this->_cid, PDO::PARAM_INT);
$sql->bindParam(2, $this->_action_id, PDO::PARAM_INT);
$sql->bindParam(3, $this->_date, PDO::PARAM_STR);
$sql->execute();
//print_r($sql);
return $sql;
/* foreach($this->_dbconn->_dbcon->query($sql) as $row)
{
echo $row["id"];
}
*/
我正在努力使用PHP PDO类执行MSSQL存储过程。
这些评论表明了我尝试过的各种各样的事情,但我似乎无法随心所欲。
我整天都在搜索Google,但看起来很多人并没有将我合并的语言结合起来。
如果您能提供帮助,请告诉我,或者至少指点我一个教程。
由于
好的,
回答你的问题Jonast92,
我在课堂上使用它。
当它返回时,我在另一端print_r(),我得到了这个:
reports_adv_ajax_errorlogs Object
(
[_dbconn:reports_adv_ajax_errorlogs:private] => database Object
(
[_dbcon] => PDO Object
(
)
)
[_cid:reports_adv_ajax_errorlogs:private] => 4076158
[_action_id:reports_adv_ajax_errorlogs:private] => null
[_date:reports_adv_ajax_errorlogs:private] => '09-Jun-2014'
)
答案 0 :(得分:0)
确定,
因此它不起作用的原因是因为PDO无法处理MSSQL DATETIME数据类型。
我通过不绑定参数来解决这个问题,如下所示:
$sql = "EXEC [DBNAME].[dbo].[SP_NAME] $_cid, $_action_id, $_date";
它不是很安全,但这个特殊的查询并不是必须的。我不会为select语句推荐这种方法。