下面的函數是我使用PDO將表單數據動態插入到數據庫中的函數,它捕獲表單名稱和值attr以在PDO插入語句中填充cols和bindValues。我現在的問題是這樣的:如何在動態插入數據庫時插入時間和日期
我想在插入之前散列密碼,並且同時插入時間和日期。
public function reg_user($data) {
if($_SERVER['REQUEST_METHOD'] == 'POST'){
$dataDB = array();
foreach ($_POST as $k => $v) {
if (in_array($k,$this->valid_keys)) {
$dataDB[$k] = $v;
}
}
$this->cols = '`'.implode('`, `', array_keys($dataDB)).'`' ;
$this->values = ':' . implode(", :", array_keys($dataDB));
$db = new db;
try{
$stmt = $db->dbh->prepare ("INSERT INTO $this->table ($this->cols) VALUES ($this->values)");
foreach ($dataDB as $k => $v) {
$stmt -> bindValue(':'.$k, $v);
}
$stmt->execute();
} catch (PDOException $e) {
$error = new Errors();
echo "<b>".$error->displayError($e)."</b>";
}
}
}
我修改了foreach循環在這個
foreach ($_POST as $k => $v) {
if (in_array($k,$this->valid_keys)) {
if($k == 'password'){
$v = password_hash($v , PASSWORD_DEFAULT);
}
$dataDB[$k] = $v;
}
}
,但我仍然得到明文口令插入到數據庫中。