2017-01-02 12 views
-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'>&times;</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。このコードはこのエラーを示しています。これらの新しい列を追加する前の作業。

何が問題ですか?

ありがとう:)

+1

dbテーブルの新しいフィールドにallow nullを追加するだけです。あなたのテーブルのスキーマに移動し、それらの追加の列を許可するnull(mySqlデータベーステーブル) – webDev

+0

ありがとうございました。 –

答えて

0

あなたのデータベースのGenderフィールドはnullではありません。 Genderフィールドにnullを挿入するか、必須にするかを指定します。

関連する問題