Note that there are some explanatory texts on larger screens.

plurals
  1. POFailed to run query: SQLSTATE[23000]: Integrity constraint violation: 1048 Column 'membersince' cannot be null
    primarykey
    data
    text
    <p>I encountered this error :Failed to run query: SQLSTATE[23000]: Integrity constraint violation: 1048 Column 'membersince' cannot be null </p> <p>here i tried to run my register page.</p> <p>here are the codes. am i missing out anything? i checked my database table/input name were all correctly named "membersince" so what is really going wrong ? :(</p> <pre><code> &lt;?php require("config.php"); if(!empty($_POST)) { // ===================================================== // Check if the username is already taken $query = " SELECT 1 FROM users WHERE username = :username "; $query_params = array( ':username' =&gt; $_POST['username'] ); try { $stmt = $db-&gt;prepare($query); $result = $stmt-&gt;execute($query_params); } catch(PDOException $ex){ die("Failed to run query: " . $ex-&gt;getMessage()); } $row = $stmt-&gt;fetch(); if($row){ die("This username is already in use"); } $query = " SELECT 1 FROM users WHERE email = :email "; $query_params = array( ':email' =&gt; $_POST['email'] ); try { $stmt = $db-&gt;prepare($query); $result = $stmt-&gt;execute($query_params); } catch(PDOException $ex){ die("Failed to run query: " . $ex-&gt;getMessage());} $row = $stmt-&gt;fetch(); if($row){ die("This email address is already registered"); } $query = " SELECT 1 FROM users WHERE nric = :nric "; $query_params = array( ':nric' =&gt; $_POST['nric'] ); try { $stmt = $db-&gt;prepare($query); $result = $stmt-&gt;execute($query_params); } catch(PDOException $ex){ die("Failed to run query: " . $ex-&gt;getMessage()); } $row = $stmt-&gt;fetch(); if($row){ die("This NRIC is already in use"); } $query = " SELECT 1 FROM users WHERE mobilenumber = :mobilenumber "; $query_params = array( ':mobilenumber' =&gt; $_POST['mobilenumber'] ); try { $stmt = $db-&gt;prepare($query); $result = $stmt-&gt;execute($query_params); } catch(PDOException $ex){ die("Failed to run query: " . $ex-&gt;getMessage()); } $row = $stmt-&gt;fetch(); if($row){ die("This Mobile Number is already in use"); } //---------------------------------------------------- Add row to database $query = " INSERT INTO users ( username, password, salt, email, name, gender, dateofbirth, nric, address, postalcode, mobilenumber, profession, membersince ) VALUES ( :username, :password, :salt, :email, :name, :gender, :dateofbirth, :nric, :address, :postalcode, :mobilenumber, :profession, :membersince ) "; // Security measures $salt = dechex(mt_rand(0, 2147483647)) . dechex(mt_rand(0, 2147483647)); $password = hash('sha256', $_POST['password'] . $salt); for($round = 0; $round &lt; 65536; $round++){ $password = hash('sha256', $password . $salt); } $query_params = array( ':username' =&gt; $_POST['username'], ':password' =&gt; $password, ':salt' =&gt; $salt, ':email' =&gt; $_POST['email'], ':name' =&gt; $_POST['name'], ':gender' =&gt; $_POST['gender'], ':dateofbirth' =&gt; $_POST['dateofbirth'], ':nric' =&gt; $_POST['nric'], ':address' =&gt; $_POST['address'], ':postalcode' =&gt; $_POST['postalcode'], ':mobilenumber' =&gt; $_POST['mobilenumber'], ':profession' =&gt; $_POST['profession'], ':membersince' =&gt; $_POST['membersince'], ); try { $stmt = $db-&gt;prepare($query); $result = $stmt-&gt;execute($query_params); } catch(PDOException $ex){ die("Failed to run query: " . $ex-&gt;getMessage()); } header("Location: successful.php"); die("Redirecting to successful.php"); } ?&gt; &lt;!-- Author: Michael Milstead / Mode87.com for Untame.net Bootstrap Tutorial, 2013 --&gt; &lt;!DOCTYPE html&gt; &lt;html lang="en"&gt; &lt;head&gt; &lt;meta charset="utf-8"&gt; &lt;meta name="viewport" content="width=device-width, initial-scale=1.0"&gt; &lt;meta name="description" content=""&gt; &lt;meta name="author" content=""&gt; &lt;link rel="shortcut icon" href="../../assets/ico/favicon.png"&gt; &lt;title&gt;Sign Up -&lt;/title&gt; &lt;!-- Bootstrap core CSS --&gt; &lt;link href="css/bootstrap.css" rel="stylesheet"&gt; &lt;!-- Custom styles for this template --&gt; &lt;link href="jumbotron.css" rel="stylesheet"&gt; &lt;!-- HTML5 shim and Respond.js IE8 support of HTML5 elements and media queries --&gt; &lt;!--[if lt IE 9]&gt; &lt;script src="../../assets/js/html5shiv.js"&gt;&lt;/script&gt; &lt;script src="../../assets/js/respond.min.js"&gt;&lt;/script&gt; &lt;![endif]--&gt; &lt;/head&gt; &lt;body&gt; &lt;?php if (empty($_SESSION['user'])) { include_once("header.php"); } else { include_once("header2.php"); }?&gt; &lt;div class="page-header"&gt; &lt;div class="container"&gt; &lt;h1&gt; Register &lt;/h1&gt; &lt;form action="register2.php" method="post" role="form"&gt; &lt;div class="form-group"&gt; &lt;label&gt;Username:&lt;/label&gt; &lt;input type="text" name="username" value="" maxlength="20" autofocus required/&gt; &lt;/div&gt; &lt;div class="form-group"&gt; &lt;label&gt;Email: &lt;strong style="color:darkred;"&gt;*&lt;/strong&gt;&lt;/label&gt; &lt;input type="email" name="email" value="" maxlength="20" required/&gt; &lt;/div&gt; &lt;div class="form-gtroup"&gt; &lt;label&gt;Password:&lt;/label&gt; &lt;input type="password" name="password" value="" maxlength="20" required/&gt; &lt;br /&gt;&lt;br /&gt; &lt;/div&gt; &lt;div class="form-group"&gt; &lt;label&gt;Name:&lt;/label&gt; &lt;input type="text" name="name" value="" maxlength="20" required/&gt; &lt;/div&gt; &lt;div class="form-group"&gt; &lt;label&gt;Gender:&lt;/label&gt; &lt;div class="radio"&gt; &lt;label&gt; &lt;input type="radio" name="gender" id="male" value="male" required&gt; Male &lt;/label&gt; &lt;/div&gt; &lt;div class="radio"&gt; &lt;label&gt; &lt;input type="radio" name="gender" id="female" value="female" required&gt; Female &lt;/label&gt; &lt;/div&gt; &lt;/div&gt; &lt;div class="form-group"&gt; &lt;label&gt;Date of Birth:&lt;/label&gt; &lt;input type="date" name="dateofbirth" value="" max="1997-12-31" required&gt; &lt;/div&gt; &lt;div class="form-group"&gt; &lt;label&gt;NRIC:&lt;/label&gt; &lt;input type="text" name="nric" value="" maxlength="9" required/&gt; &lt;/div&gt; &lt;div class="form-group"&gt; &lt;label&gt;Address:&lt;/label&gt; &lt;input type="text" name="address" value="" maxlength="50" /&gt; &lt;/div&gt; &lt;div class="form-group"&gt; &lt;label&gt;Postal Code:&lt;/label&gt; &lt;input type="text" name="postalcode" value="" maxlength="6" pattern="[1-9]{6}" title="Postal code must be 6 digit!" required/&gt; &lt;/div&gt; &lt;div class="form-group"&gt; &lt;div class="input-group"&gt; &lt;span class="input-group-addon"&gt;+65&lt;/span&gt; &lt;input type="text" name="mobilenumber" value="" class="form-control" placeholder="Mobile Number" maxlength="8" pattern="[1-9]{8}" title="Mobile Number must be 6 digit!" required&gt; &lt;/div&gt; &lt;/div&gt; &lt;div class="form-group"&gt; &lt;label&gt;Profession:&lt;/label&gt; &lt;input type="text" name="profession" value="" maxlength="20" required&gt; &lt;/div&gt; &lt;div class="form-group"&gt; &lt;input class="text" name="membersince" value=" &lt;?php&gt; $todaysdate = date("Y-m-d"); echo $todaysdate?&gt;" type="text" disabled&gt; &lt;/div&gt; &lt;input type="submit" class="btn btn-info" value="Register" /&gt; &lt;input type="reset" class="btn btn-info" value="Reset"&gt; &lt;/form&gt; &lt;/div&gt; &lt;/div&gt; &lt;?php include_once("footer.php");?&gt; &lt;/body&gt; &lt;/html&gt; </code></pre>
    singulars
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    plurals
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
 

Querying!

 
Guidance

SQuiL has stopped working due to an internal error.

If you are curious you may find further information in the browser console, which is accessible through the devtools (F12).

Reload