-2
PDO登録スクリプト。ジェンダー、dob、ipなしで働く罰金。私は3つの新しい列dob、Gender、ipを追加しました。これらの列を追加すると、これらのエラーが表示されます。私は何が問題なのか理解できません。SQLSTATE [23000]:整合性制約違反:1048列 'Gender'はNULLになりません。クエリは実行できません。
signup.php
if(isset($_POST['btn-signup']))
{
$uname = trim($_POST['txtuname']);
$email = trim($_POST['txtemail']);
$upass = trim($_POST['txtpass']);
$dob = trim($_POST['dob']);
$Gender = trim($_POST['sex']);
$ip = $_SERVER['REMOTE_ADDR'];
$code = md5(uniqid(rand()));
$stmt = $reg_user->runQuery("SELECT * FROM tbl_users WHERE userEmail=:email_id");
$stmt->execute(array(":email_id"=>$email));
$row = $stmt->fetch(PDO::FETCH_ASSOC);
if($stmt->rowCount() > 0)
{
$msg = "
<div class='alert alert-error'>
<button class='close' data-dismiss='alert'>×</button>
<strong>Sorry !</strong> email allready exists , Please Try another one
</div>
";
}
<?php if(isset($msg)) echo $msg; ?>
<form class="form-signin" method="post">
<h2 class="form-signin-heading">Sign Up</h2><hr />
<input type="text" class="input-block-level" placeholder="Username" name="txtuname" required />
<input type="email" class="input-block-level" placeholder="Email address" name="txtemail" required />
<input type="password" class="input-block-level" placeholder="Password" name="txtpass" required />
<input type="date" class="input-block-level" placeholder="dob" name="dob" required />
<input type="text" class="input-block-level" placeholder="Gender" name="sex" />
<hr />
<button class="btn btn-large btn-primary" type="submit" name="btn-signup">Sign Up</button>
<a href="index.php" style="float:right;" class="btn btn-large">Sign In</a>
</form>
私はちょうど3つの新しい列Gebder、DOB、IPを追加
public function register($uname,$email,$upass,$code) {
try {
$password = md5($upass);
$stmt = $this->conn->prepare("INSERT INTO tbl_users(userName, userEmail,
userPass, tokenCode, Gender, dob,ip) VALUES(:user_name, :user_mail, :user_pass, :active_code, :Gender_l, :dob_l, :ip_l)");
$stmt->bindparam(":user_name",$uname);
$stmt->bindparam(":user_mail",$email);
$stmt->bindparam(":user_pass",$password);
$stmt->bindparam(":active_code",$code);
$stmt->bindparam(":Gender_l",$Gender);
$stmt->bindparam(":dob_l",$dob);
$stmt->bindparam(":ip_l",$ip);
$stmt->execute();
return $stmt;
} catch(PDOException $ex) {
echo $ex->getMessage();
}
}
class.user.php。このコードはこのエラーを示しています。これらの新しい列を追加する前の作業。
何が問題ですか?
ありがとう:)
dbテーブルの新しいフィールドにallow nullを追加するだけです。あなたのテーブルのスキーマに移動し、それらの追加の列を許可するnull(mySqlデータベーステーブル) – webDev
ありがとうございました。 –