我试图在用户注册时插入日期但不起作用。当我添加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
));
Run Code Online (Sandbox Code Playgroud)
我已经阅读了其他线程并尝试了这个
$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
));
Run Code Online (Sandbox Code Playgroud)
刚刚添加created并NOW()到查询,但没有将任何东西。
可能是什么问题?
您在要提供给的 SQL 上缺少右括号prepare():
$stmt = $pdo->prepare('INSERT INTO users (username,password,email,created,active) VALUES (:username, :password, :email, NOW(), :active');
Run Code Online (Sandbox Code Playgroud)
它应该是
$stmt = $pdo->prepare('INSERT INTO users (username,password,email,created,active) VALUES (:username, :password, :email, NOW(), :active)');
Run Code Online (Sandbox Code Playgroud)
正如@VincentDecaux 所建议的那样,您的错误检查应该会发现这一点。如果您愿意,请使用以下内容启用例外:
$pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
Run Code Online (Sandbox Code Playgroud)