【问题标题】:Trying to insert Date into Oracle Database via php but Code isint working尝试通过 php 将日期插入 Oracle 数据库,但代码不起作用
【发布时间】:2016-01-21 09:31:33
【问题描述】:

我正在创建一个项目,但在将日期插入 oracle 数据库时遇到问题,我正在使用数据绑定,其他一切正常,但日期未插入..

$bkida = @$_POST['bkida'];
$titlea = @$_POST['titlea'];
$athr = @$_POST['athr'];
$pblr = @$_POST['pblr'];
$edtn = @$_POST['edtn'];
$btype = @$_POST['btype'];
$pdatea = @$_POST['pdatea'];
$indatea = @$_POST['indatea'];
$tbooks = @$_POST['tbooks'];
$tpages = @$_POST['tpages'];

$cmts = @$_POST['cmts'];

$sql = "INSERT INTO books(ISBN,   TITLE, AUTHOR,PUBLISHER,EDITION,BK_TYPE,PRINT_DT,   IN_DT,     TOT_BKS,  AVAIL_BKS,  PAGES,  COMMENTS) 
"."VALUES(:bkida,:titlea,:athr,:pblr,     :edtn,  :btype  ,to_date(:pdatea, 'MM-DD-YYYY'), to_date(:indatea, 'MM-DD-YYYY'),  :tbooks ,  :tbooks,  :tpages ,  :cmts   )";

$compiled = oci_parse($conn, $sql);

oci_bind_by_name($compiled, ':bkida', $bkida);
oci_bind_by_name($compiled, ':titlea', $titlea);
oci_bind_by_name($compiled, ':athr', $athr);
oci_bind_by_name($compiled, ':pblr', $pblr);
oci_bind_by_name($compiled, ':edtn', $edtn);
oci_bind_by_name($compiled, ':btype', $btype);

oci_bind_by_name($compiled, ':pdatea', $pdatea);
oci_bind_by_name($compiled, ':indatea', $indatea);
oci_bind_by_name($compiled, ':tbooks', $tbooks);
oci_bind_by_name($compiled, ':tpages', $tpages);
oci_bind_by_name($compiled, ':cmts', $cmts);


oci_execute($compiled);

【问题讨论】:

  • 你的数据库的数据类型是什么??
  • 我已将其设置为 DATE ...

标签: php html mysql oracle


【解决方案1】:

解决了,在我使用 echo i gt 后,输出很奇怪,所以我玩了 y-m-d 的值,最后让这段代码工作了

$pdatea = date("m-d-Y",strtotime(@$_POST['pdatea']));
indatea = date("m-d-Y",strtotime(@$_POST['indatea'])); 

感谢 Niranjan 先生的帮助:D

【讨论】:

    【解决方案2】:

    默认日期格式为YYYY-MM-DD,我认为您正在尝试以其他格式插入。在插入数据库之前像这样转换您的日期

    $pdatea = date("Y-m-d",strtotime(@$_POST['pdatea']));
    $indatea = date("Y-m-d",strtotime(@$_POST['indatea']));
    

    【讨论】:

    • 好吧,我会试试这个..但是当我通过 oracle 面板直接插入数据库时​​,我必须以这种格式插入 MM-DD-YYYY,2015 年 12 月 20 日,因为它是不接受任何其他格式。
    • 是该列的数据类型日期吗??
    • 这也行不通,我正在使用 oracle 11g ...我在文本框中输入日期为 2015-10-10 进行更新,它仍然不起作用,我也尝试了 10-10 -2015 但没有成功..
    • 什么被插入到数据库中??
    • 如果我将 2 个日期文本框(pdatea 和 indatea)留空,则每隔一列都会更新,但如果我尝试填写日期,则不会插入任何内容。
    猜你喜欢
    • 2021-09-06
    • 2014-10-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-05-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多