我试图在用户注册时插入日期但不起作用。当我将 NOW()
添加到查询时,它没有插入任何内容。如果我删除它,用户将被添加到数据库中。
这是正常的查询
$stmt = $pdo->prepare('INSERT INTO users (username,password,email,active) VALUES (:username, :password, :email, :active');
$stmt->execute(array(
':username' => $_POST['username'],
':password' => $hashedpassword,
':email' => $_POST['email'],
':active' => $activasion
));
我已经阅读了其他线程并尝试了这个
$stmt = $pdo->prepare('INSERT INTO users (username,password,email,created,active) VALUES (:username, :password, :email, NOW(), :active');
$stmt->execute(array(
':username' => $_POST['username'],
':password' => $hashedpassword,
':email' => $_POST['email'],
':active' => $activasion
));
只是将 created
和 NOW()
添加到查询中,但没有插入任何内容。
可能是什么问题?
最佳答案
您在提供给 prepare()
的 SQL 中缺少右括号:
$stmt = $pdo->prepare('INSERT INTO users (username,password,email,created,active) VALUES (:username, :password, :email, NOW(), :active');
应该是
$stmt = $pdo->prepare('INSERT INTO users (username,password,email,created,active) VALUES (:username, :password, :email, NOW(), :active)');
正如@VincentDecaux 所建议的那样,您的错误检查应该捕捉到这一点。如果您愿意,可以使用以下方法启用异常:
$pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
关于php - 使用准备好的语句在数据库中插入 datetime NOW(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32945398/