【问题标题】:How to insert Date and Time Objects? Php mysql error如何插入日期和时间对象? php mysql 错误
【发布时间】:2018-09-18 18:44:15
【问题描述】:

我正在 Android Studio 上构建一个项目。我想使用 php 在 mysql 数据库上插入日期和时间值。

这是我的数据库:

php代码:

<?php 
 require "conn.php";
 $name = $_POST["name"];
 $date = $_POST["date"];
 $start_time = $_POST["start_time"];
 $end_time = $_POST["end_time"];

 $mysql_qry = "insert into events_data 
 (Name, Date, start_time, end_time) values 
 ('$name', '$date', '$start_time', 
 '$end_time')";
 $link = $conn->query($mysql_qry);
 if($link===TRUE) {
     echo "Event added Successfully";
 }
 else {

     echo "Failed to add event";
 }
 $conn->close();

 ?>

Java:

我尝试了所有我找到的日期和时间格式,但我不断收到错误“无法添加事件”。有任何想法吗?谢谢

Github

【问题讨论】:

  • 警告:使用mysqli 时,您应该使用parameterized queriesbind_param 将用户数据添加到您的查询中。 请勿使用字符串插值或连接来完成此操作,因为您创建了一个严重的SQL injection bug切勿$_POST$_GET任何用户数据直接放入查询中,如果有人试图利用您的错误,这可能会非常有害。
  • 请尝试改掉用=== true 之类的不必要的东西弄乱代码的习惯。许多函数被设计为返回逻辑上判断为真或假的值,因此这是多余的。
  • 请花点时间实际粘贴您的 java 代码,而不是添加图像,这可能随时被删除。
  • 注意:试着改掉在一次性变量中声明 SQL 语句的习惯,这些变量只使用一次。在将查询直接提供给函数的情况下,跟踪代码要容易得多,并且在调用时不再有可能搞砸并发送错误的变量。
  • 您的 Java 代码正在使用可怕的旧日期时间类,这些类在几年前已被 java.time 类取代。从 JDBC 4.2 开始,我们可以直接与数据库交换 java.time 对象,不需要字符串。

标签: java php mysql android-studio


【解决方案1】:

而不是回显“无法添加事件”,而是回显 mysqli_error($conn),然后您将知道您遇到了什么 SQL 错误并可以尝试从那里修复它

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-07-26
    • 1970-01-01
    • 2016-04-01
    • 1970-01-01
    • 1970-01-01
    • 2016-08-20
    • 2011-02-25
    相关资源
    最近更新 更多