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