【问题标题】:How do I pass a sysdate in an oci_bind_by_name function to update a record?如何在 oci_bind_by_name 函数中传递 sysdate 来更新记录?
【发布时间】:2021-02-12 00:56:00
【问题描述】:

如何使用 oci_bind_by_name 函数将 sysdate 传递到 oracle 表中的日期列

例如

$upquery = "UPDATE mytable SET fieldA = :b_ssn, fieldUpdated = :b_updateDate where fieldKey = :b_key";
$whatsup = oci_parse($conn, $upquery);
oci_bind_by_name($whatsup, ':b_ssn', $the_ssn, -1, OCI_B_INT);

oci_bind_by_name($whatsup, ':b_updateDate, sysdate, ... ? // <--

oci_bind_by_name($whatsup, ':b_key', $the_key, -1, OCI_B_INT);
oci_execute($whatsup);

如何通过?


忽略这个...为什么不在查询中使用 sysdate LOL

【问题讨论】:

  • 您不能将标识符作为参数传递,只能传递文字。换句话说,您可以传递您的自定义变量,但不能传递表、列、函数、伪行……这不是 PHP 或 Oracle 特有的,这是我所知道的所有准备好的语句实现的工作方式。

标签: php oracle date


【解决方案1】:

这样做:

$upquery = "UPDATE mytable SET fieldA = :b_ssn, fieldUpdated = SYSDATE where fieldKey = :b_key";

我不熟悉php,也许这个也可以:

oci_bind_by_name($whatsup, ':b_updateDate', new DateTime(), SQLT_ODT)

【讨论】:

    猜你喜欢
    • 2021-10-20
    • 1970-01-01
    • 2022-12-12
    • 1970-01-01
    • 1970-01-01
    • 2020-08-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多