在PHP和Oracle中,回送变量时不显示值
我将Oracle查询保存到表中 槲皮素在PHP和Oracle中,回送变量时不显示值,php,oracle,Php,Oracle,我将Oracle查询保存到表中 槲皮素 queryid | query_info 001 | SELECT COUNT(*) AS TOTAL FROM WA_GA_TBL_USERS WHERE TO_CHAR(USERPASSWORD_EXPIREDATE,'YYYY-MM-DD') <= '$getBeforeMonth' 002 | SELECT COUNT(*) AS TOTAL FROM WA_GA_TBL_DEPARTMENTS queryid |查询|信息
queryid | query_info
001 | SELECT COUNT(*) AS TOTAL FROM WA_GA_TBL_USERS WHERE TO_CHAR(USERPASSWORD_EXPIREDATE,'YYYY-MM-DD') <= '$getBeforeMonth'
002 | SELECT COUNT(*) AS TOTAL FROM WA_GA_TBL_DEPARTMENTS
queryid |查询|信息
001 |从WA_GA_TBL_用户中选择COUNT(*)作为总计,并在其中添加字符(USERPASSWORD_EXPIREDATE,'YYYY-MM-DD')
}
当我运行查询时,它只对queryid 002起作用。查询001没有结果,当我尝试打印它时,它显示$getBeforeMonth,应该是2017-07-26
为什么会发生这种情况?尝试将变量从表列上的to_char(可以是其索引)转换为to_date:选择COUNT(*)作为USERPASSWORD过期的WA_GA_TBL_用户的总计为什么会发生这种情况?那么,在调用
oci\u parse()
时,为什么Oracle DB(服务器)要替换PHP(客户端)变量呢?您应该找到一种不同的方法来处理存储查询的参数化。尝试将变量从表列上的to_char(它可以是索引)转换为to_date:选择COUNT(*)AS TOTAL from WA_GA_TBL_USERS WHERE USERPASSWORD_EXPIREDATE为什么发生这种情况?那么,在调用oci\u parse()
时,为什么Oracle DB(服务器)要替换PHP(客户端)变量呢?您应该找到一种不同的方法来处理存储查询的参数化。
$getBeforeMonth = "2017-07-26";
$qWidgetAccess = oci_parse($c1, "
SELECT
W.WIDGETID,
W.WIDGETNAME,
W.WIDGETDESCRIPTION,
W.WIDGETSTATUS,
W.PROJECTID_FK,
W.WIDGETQUERY,
W.WIDGETICON,
W.PROJECTID_FK,
AW.WIDGETID_FK,
AW.GROUPID_FK,
AW.DATEADDED,
P.PROJECTID,
P.PROJECTNAME
FROM
WA_GA_TBL_WIDGETS W,
WA_GA_TBL_ACCESSWIDGETS AW,
WA_GA_TBL_PROJECTS P
WHERE
W.WIDGETID = AW.WIDGETID_FK AND
W.PROJECTID_FK = P.PROJECTID AND
AW.GROUPID_FK = '" . $getGroupIDFK . "' AND
W.WIDGETSTATUS = '2'
ORDER BY AW.DATEADDED DESC
");
oci_execute($qWidgetAccess);
while($dWidgetAccess = oci_fetch_array($qWidgetAccess))
{
?>
<div class="textWidget">
<div class="total">
<?php
$qTotal = oci_parse($c1, $dWidgetAccess['WIDGETQUERY']);
oci_execute($qTotal);
$dTotal = oci_fetch_array($qTotal);
echo $dTotal['TOTAL'];
?>
</div>
<div class="title"><?php echo $dWidgetAccess['WIDGETNAME']; ?></div>
<div class="projectName">
<?php echo $dWidgetAccess['PROJECTNAME']; ?>
</div>
</div>
}