时间戳未插入数据库

时间:2019-03-03 18:41:44

标签: php

我具有此功能,用于将用户及其成功创建帐户的日期和时间注册到数据库中。当我单击“注册”时,它表示已成功注册,但仍未在数据库中添加任何内容。

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);

}

希望尽快解决此问题

2 个答案:

答案 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可接受的正确格式。