我具有此功能,用于将用户及其成功创建帐户的日期和时间注册到数据库中。当我单击“注册”时,它表示已成功注册,但仍未在数据库中添加任何内容。
created_at
为TIMESTAMP格式,默认值为CURRENT_TIMESTAMP
这是我的功能
function registerUser(){
global $connect, $name, $gender, $username, $password, $number,
$occupation, $address, $birth_date, $user_type, $photo,
$status;
$passwordHash = password_hash($password, PASSWORD_DEFAULT);
$statement = mysqli_prepare($connect, "INSERT INTO client
(username, password, name, phone_number,
gender, address, occupation, birth_date,
user_type, photo, status, created_at)
VALUES (?,?,?,?,?,?,?,?,?,?,?,CURRENT_TIMESTAMP)");
mysqli_stmt_bind_param($statement, "sssssssssss", $username,
$passwordHash, $name, $number,
$gender, $address, $occupation,
$birth_date, $user_type, $photo,
$status);
mysqli_stmt_execute($statement);
}
希望尽快解决此问题
答案 0 :(得分:1)
您现在可以更新Mysql列数据类型吗?
ALTER TABLE `your_table`
MODIFY COLUMN `created_at ` timestamp(0) NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP(0);
因此您不必在每次插入或更新时都将值发送到created_at列。
您的代码;
function registerUser(){
global $connect, $name, $gender, $username, $password, $number, $occupation, $address, $birth_date, $user_type, $photo, $status;
$passwordHash = password_hash($password, PASSWORD_DEFAULT);
$statement = mysqli_prepare($connect, "INSERT INTO client(username, password, name, phone_number, gender, address, occupation, birth_date, user_type, photo, status) VALUES (?,?,?,?,?,?,?,?,?,?,?)");
mysqli_stmt_bind_param($statement, "sssssssssss", $username, $passwordHash, $name, $number, $gender, $address, $occupation, $birth_date, $user_type, $photo, $status);
mysqli_stmt_execute($statement);
}
答案 1 :(得分:0)
根据您在MySQL数据库中设置的日期类型,插入日期字符串时格式必须正确。
如果MySQL的created_at
格式仅是日期,例如-2018-05-11
,然后将PHP的date函数与以下参数一起使用:date("Y-m-d")
这将是数据库的正确格式。
如果日期格式包含时间和日期,请使用date(Y-m-d H:i:s)
。这将是MySQL可接受的正确格式。