【问题标题】:Save date from HTML type="datetime-local" to firebird database将日期从 HTML type="datetime-local" 保存到 firebird 数据库
【发布时间】:2018-09-11 01:06:29
【问题描述】:

我用这个 HTML 代码捕获日期

Start Time <br>
<input  **strong text**name="start_time" type="datetime-local" id="id_start_time" onchange="Fenable('id_end_time,id_closed')" ><br>
End Time <br>

我正在使用火鸟

将记录保存到数据库时出错

SQLSTATE[HY000]:一般错误:-303 动态 SQL 错误 SQL 错误代码 = -303 来自字符串“2018-09-28T20:20”的转换错误

如何将输入转换为合法字符串? 有人可以帮忙吗?

【问题讨论】:

  • 添加 html 标签,移除不相关的 php 标签,缩进给定的“html”代码并将错误插入到块引用中
  • 你可以为 onchange 函数添加你的 JavaScript 吗?您的 HTML 标记无效。使用 标签,并记得关闭标签。
  • 请显示用于插入的实际代码。
  • 感谢您的建议。我通过使用以下javascript代码解决了它 var str = document.getElementById("id_start_time").value; var s_time = str.replace("T", "");

标签: html date firebird


【解决方案1】:

该错误表明您正在尝试将字符串插入TIMESTAMP 列,并且该字符串的格式未按 Firebird 的预期进行。 Firebird 支持多种字符串格式,但都不包括T

确保您插入的值的格式为 2018-09-28 20:20(格式为 yyyy-MM-dd HH:mm[:ss[.fffff]]),或者您正在插入合适的时间戳数据类型。

顺便说一句:该错误还表明您正在使用字符串连接来创建查询而不是参数化查询。连接你的查询字符串是不安全的,因为它会让你对 SQL 注入开放。

【讨论】:

    【解决方案2】:

    Mark Rotteveel - 感谢您的建议。 我正在使用 bindParam 方法来保存数据。

    我通过使用以下 javascript 代码解决了它

    function clk_submit(){
    //document.getElementById("loader").style.display = "inline";   
    

    var str = document.getElementById("id_start_time").value;
    var s_time = str.replace("T", " ");

     var str = document.getElementById("id_end_time").value; 
    var e_time = str.replace("T", " ");
    
        var xdata = {
        bpr_pid:document.getElementById("id_product_id").value,
        bpr_bno:document.getElementById("id_batch_no").value,
        bpr_stageid:document.getElementById("id_stage").value,
        bpr_cpid:"0",
        bpr_bwt:document.getElementById("id_batch_weight").value,
        bpr_status_id:"0",
    

    bpr_stime:s_time,

        bpr_etime:e_time,
        bpr_closed:document.getElementById("id_closed").value,
        bpr_uid:"<?php echo $_SESSION["userid"] ?>",                                
        bpr_rem:"",
        bpr_inbid:"0",
        bpr_fcid:document.getElementById("id_formula_code").value,
        bpr_seq_code_id:document.getElementById("id_sequence_code").value
        };
    
            var myJSON = JSON.stringify(xdata);
            var   xmlhttp;
            xmlhttp = new XMLHttpRequest();
            xmlhttp.onreadystatechange = function() {
    
                if (this.readyState == 4 && this.status == 200) {
        //              document.getElementById("loader").style.display = "none";
                        if (this.responseText==1) {
                            alert( "Record Saved Successfully");
                        } else {
                                alert(this.responseText);
                            }
                    }
            };
            xmlhttp.open("POST", "json_save_to_db.php", true);
            xmlhttp.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
            xmlhttp.send("x=" + myJSON);
        }   
    

    现在完美了。

    【讨论】:

      猜你喜欢
      • 2022-01-16
      • 2020-05-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-10-19
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多