【发布时间】:2016-06-29 20:03:51
【问题描述】:
我想在我的 PDO 准备查询中绑定 sysdate 函数:
$db = new PDO('oci:dbname=database;charset=UTF8', 'user', 'pass');
$db->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
$query = $db->prepare('SELECT :func FROM DUAL');
$query->execute(array(':func' => 'SYSDATE()'));
var_dump($query->fetch());
结果返回这个:
array (size=2)
':FUNC' => string 'SYSDATE()' (length=9)
0 => string 'SYSDATE()' (length=9)
我想获取我的 oracle 数据库的系统日期。有可能吗?
你能帮我做我的把戏吗?
【问题讨论】:
-
不,这是不可能的。绑定参数是一种注入数据(例如数字或字符串文字)并确保它们不会变成代码的工具。你要求的是相反的。为什么需要这样做?
-
@ÁlvaroGonzález OCI 支持
INandOUTbinds,但据我所知不支持 PDO。 -
现在出现的反映,看到大量的反对票:有问题的代码是说明问题的简化测试用例,还是您真的只想运行普通的静态
SELECT SYSDATE FROM DUAL查询? -
@timclutton 我从未使用过用于 Oracle 的 PDO(仅 OCI8),但他似乎不想要 OUT 绑定(并且 IN 绑定显然对他有用,因为他得到了
SELECT 'SYSDATE()' FROM DUAL)。 -
好点;我从表面上接受了这个问题。无论哪种方式(您的回答或我的回答),问题都应该得到解决。也许OP可以发表评论。
标签: php oracle pdo oracle-call-interface