php - 使用准备好的语句在数据库中插入 datetime NOW()

标签 php mysql

我试图在用户注册时插入日期但不起作用。当我将 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
));

只是将 createdNOW() 添加到查询中,但没有插入任何内容。

可能是什么问题?

最佳答案

您在提供给 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/

相关文章:

php - 如何将 MySQL 语句 'show index' 与 PDO 一起使用?

java - 无法使用 Swing 登录

PHP/SQL - 查询关系数据库中的 ID,但能够使用 ORDER BY 在单独的数据库中查询这些 ID

php - Laravel 代客使用错误版本的 PHP

php - .htaccess 从本地主机切换到远程服务器

php - STR_TO_DATE 函数在 mysql 中返回 null

php - 组合值以创建 100 个

php - 从Mysql数据库中自动删除

python - 尝试通过 pip 安装 MySQL-python 时找不到 Visual C++ 2010 Redistributable

python - Foo.objects.get(id=None) 返回 Foo 实例,有时