【发布时间】:2019-07-19 11:59:56
【问题描述】:
我有一个包含以下字段的简单表单 审计员,部门,日期,weeknr,注册(我有他们在荷兰语..) PHP 是个问题,因为我不太了解它。
所以这里有 2 个问题:
我的日期字段是一个 jQuery 日期选择器并返回 (07/19/2019) 但在mysql中我只得到0000-00-00,
另外,我想根据用户填写的某些字段的值获得一个 ID。已经尝试搜索如何执行此操作,但找不到好的示例。 所以我的 ID 类似于:departement_weeknr(例如..)
我在网上查看了其他代码示例,但由于我不懂 PHP,所以我很难集成它。
这是我存储所有信息的代码
if (isset($_POST['register_form'])) {
// receive all input values from the form
$Auditor = mysqli_real_escape_string($db, $_POST['Auditor']);
$Afdeling = mysqli_real_escape_string($db, $_POST['Afdeling']);
$Datum = mysqli_real_escape_string($db, $_POST['Datum']);
$Week = mysqli_real_escape_string($db, $_POST['Week']);
$Aanmelding = mysqli_real_escape_string($db, $_POST['Aanmelding']);
$query="INSERT INTO 6saudits (Auditor,Afdeling,Datum,Week,Aanmelding) VALUES ('$Auditor','$Afdeling','$Datum','$Week','$Aanmelding')";
$datum = date('Y-m-d', strtotime(str_replace('-', '/', $datum)));
mysqli_query($db, $query);
我希望有人可以帮助我处理日期和 ID 部分,以便将其正确存储在 mysql 表中
编辑 SQL 表:
CREATE TABLE IF NOT EXISTS `6saudits` (
`ID` int(50) NOT NULL AUTO_INCREMENT,
`Auditor` varchar(50) NOT NULL,
`Afdeling` varchar(50) NOT NULL,
`Datum` date NOT NULL,
`Week` int(20) NOT NULL,
`Aanmelding` varchar(50) NOT NULL,
PRIMARY KEY (`ID`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 AUTO_INCREMENT=17 ;
【问题讨论】:
-
显示你的数据库结构
-
PHP 变量名区分大小写。
$datum应该是$Datum。此外,如果您打算在构建查询后修改变量,请考虑使用prepared statements。 -
警告:您可能对SQL Injections 持开放态度,应该真正使用参数化的prepared statements,而不是手动构建查询。它们由PDO 或MySQLi 提供。永远不要相信任何类型的输入,尤其是来自客户端的输入。即使您的查询仅由受信任的用户执行,you are still in risk of corrupting your data。
-
你好,Dharman,谢谢你的关心,但就像我之前提到的,我对PHP的了解非常有限,我使用的代码是我在学校学到的,认为它足够省钱。我知道网上有足够多的示例,但是如果我不知道如何将我的代码更改为与示例类似的东西,那么无论如何我都会被卡住。不过,我会查一下你的顾虑。