Следующий код вставляет данные только в поля «email» и «password» и 0 в роль (это нормально). Поля первого и последнего имени пустые. Я не могу понять, почему.PDO Insert Only Inserting Some Data
My DB имеет: идентификатор, имя_файла, LNAME, электронная почта, роль, пароль
Я пробовал много различных решений и стучал головой о стену. Мне удалось выяснить, что $ fname и $ lname не являются привязкой или вставкой, но они распознаются, если я повторяю их в верхней части скрипта.
<?
require_once('connection.php');
if (isset($_POST['submit'])) {
$errMsg = '';
//username and password sent from Form
$email = trim($_POST['email']);
$password = trim($_POST['password']);
$fname = trim($_POST['fname']);
$lname = trim($_POST['lname']);
if ($email == '' or $password == '' or $email == '' or $fname = '' or $lname = '')
$errMsg = 'All Fields Are Required.<br>';
if ($errMsg == '') {
$sql = "SELECT COUNT(email) AS num FROM users WHERE email = :email";
$stmt = $databaseConnection->prepare($sql);
$stmt->bindValue(':email', $email);
$stmt->execute();
$row = $stmt->fetch(PDO::FETCH_ASSOC);
if ($row['num'] > 0) {
die('That email address already exists! <a href=\"register.php\">Please try again.</a>');
}
$passwordHash = password_hash($password, PASSWORD_BCRYPT, array("cost" => 12));
$stmt = $databaseConnection->prepare("INSERT INTO users (fname, lname, email, password) VALUES (:fname, :lname, :email, :password)");
$stmt->bindValue(':fname', $fname);
$stmt->bindValue(':lname', $lname);
$stmt->bindValue(':email', $email);
$stmt->bindValue(':password', $passwordHash);
$result = $stmt->execute();
if ($result) {
header('Location:index.php');
echo 'User created. Please log in.';
die();
}
}
}
?>
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>Test Register</title>
</head>
<body>
<div align="center">
<div style="width:300px; border: solid 1px #006D9C; " align="left">
<?php
if (isset($errMsg)) {
echo '<div style="color:#FF0000;text-align:center;font- size:12px;">'.$errMsg.'</div>';
}
?>
<div style="background-color:#006D9C; color:#FFFFFF; padding:3px;"><b>Register</b></div>
<div style="margin:30px">
<form action="" method="post">
<label>First Name :</label><input type="text" name="fname" class="box"/><br /><br />
<label>Last Name :</label><input type="text" name="lname" class="box"/><br /><br />
<label>Email :</label><input type="email" name="email" class="box"/><br /><br />
<label>Password :</label><input type="password" name="password" class="box" /><br/><br />
<input type="submit" name='submit' value="Submit" class='submit'/><br />
</form>
</div>
</div>
</div>
</body>
</html>
WOW ...... Я не могу сказать вам, насколько глупым я себя чувствую. Это серьезно расстроило меня примерно на час. Спасибо за помощь. –
Не беспокойтесь. Бывает :) – satroy