javascript - 日期未在数据库中保存正确的值

标签 javascript php jquery html mysql

我正在获取当天和今天的年份和月份,并在我的文本框中显示正确的值。但是,当我开始将其提交到数据库时,该值默认变为 2014 而不是文本框的值。似乎是什么问题?

function YearMonth() {
  var d = new Date();
  var n = d.getFullYear();
  var t = d.getUTCMonth()+1;
  var x = n + "-" + t ;
  
  document.getElementById("num").value = x;
}
 <td><input type="text" id="num" name="num"></td></tr>
 
<input type= "button" name= "button_go" onclick="YearMonth()" id= "button_go" value= "GO" /> 
<input type= "submit" name= "submit" id= "submit_form" value= "Submit" />

<?php
    $servername = "localhost";
    $username = "root";
    $password = "";
    $dbname = "_db";
        $connection = new mysqli($servername, $username, $password, $dbname);

            if ($connection->connect_error) {
                die("Connection failed: " . $connection->connect_error);
            }       

$count = $_POST['num'];

       $sql = "INSERT INTO table (no)
            VALUES ($count)";

            if ($connection->query($sql) === TRUE) 
            {

            } 
            else
            {
                echo "Error: " . $sql . "<br>" . $connection->error;
            }

最佳答案

您的问题出在您的INSERT 查询中:

$sql = "INSERT INTO table (no) VALUES ($count)";

因为您没有引用 $count,所以这会转换为

INSERT INTO table (no) VALUES (2019-5)

然后 MySQL 将其转换为

INSERT INTO table (no) VALUES (2014)

$count 周围添加引号将暂时解决您的问题:

$sql = "INSERT INTO table (no) VALUES ('$count')";

但是你真的应该切换到准备好的语句来避免 SQL 注入(inject)风险。像这样的东西:

$stmt = $connection->prepare("INSERT INTO table (no) VALUES (?)");
$stmt->bind_param('s', $count);
$stmt->execute();

如果您最初使用准备好的语句,您一开始就不会遇到这个问题。

关于javascript - 日期未在数据库中保存正确的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56266759/

相关文章:

javascript - 无法使用点符号或索引器符号向对象添加属性?

php - Jquery Ajax Post 无法在所有浏览器中随机返回

php - 元描述内容未显示在 Google 搜索结果页面中

php - 如何通过cURL 获取带有POST 方法的表单响应?

javascript - 如何在提交表单时限制特定的电子邮件域

javascript - 对齐和居中 div

javascript - React - 使用内联重要样式

javascript - 如何使用 jQuery 重置克隆对象的值?

javascript - jQuery 按键数组密码

php - 在 JavaScript 中使用 smarty 数组