我有一个循环,它为绑定参数中设置的所有参数分配值。我的问题是,当我绑定它们时,我不太确定如何动态设置param类型。
例如,这是循环:
with xml as ( select '<?xml version="1.0" encoding="WINDOWS-1252"?>
<View>
<ReportValues>
<SalaryValue variable="HR" value="999"/>
<SalaryValue variable="floor" value="20"/>
</ReportValues>
</View>' xml from dual)
select updatexml( xmltype.createxml(xml.xml),'/View/ReportValues/SalaryValue[@variable="HR"]/@value','666' )
from xml
但是 - 如果$ vals包含数组中某个值的字符串,则会中断(显然)。
如何根据$ vals中的值类型动态设置PARAM_INT?
我考虑过使用gettype(),但这似乎很混乱......:)
答案 0 :(得分:1)
根本不打扰绑定 - 只需将所有内容发送到执行中:
$pdo->prepare($sql)->execute(array_combine($cols,$vals));
不要忘记关闭仿真模式,否则此方法会阻塞LIMIT子句参数。
但是,请记住,您尝试实施的此类动态查询是prone to SQL injection并应用适当的保护。