Note that there are some explanatory texts on larger screens.

plurals
  1. POFailed to run query: SQLSTATE[42000]: Syntax error or access violation: 1064 You have an error in your SQL syntax; check the manual that corresponds
    text
    copied!<p>I am having problem with my register.php page. Once i have completed all the form this is the</p> <p><strong>Full error message:</strong> </p> <p>Failed to run query: SQLSTATE[42000]: Syntax error or access violation: 1064 You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ') VALUES ( 'peterusername', 'fcebef48582240a' at line 16</p> <p><strong>Note the "peterusername" is the username that i inputted.</strong> </p> <p><strong>Using Bootstrap v3.0 btw</strong></p> <pre><code> &lt;?php require("config.php"); if(!empty($_POST)) { // Ensure that the user fills out fields if(empty($_POST['username'])) { die("Please enter a username."); } if(empty($_POST['password'])) { die("Please enter a password."); } if(!filter_var($_POST['email'], FILTER_VALIDATE_EMAIL)) { die("Invalid E-Mail Address"); } if(empty($_POST['name'])) { die("Please enter your name."); } if(empty($_POST['gender'])) { die("Please enter your gender."); } if(empty($_POST['dateofbirth'])) { die("Please enter your Date or Birth."); } if(empty($_POST['nric'])) { die("Please enter your NRIC."); } if(empty($_POST['address'])) { die("Please enter your address."); } if(!filter_var($_POST['postalcode'], FILTER_SANITIZE_NUMBER_INT)) { die("Invalid Postal Code"); } if(!filter_var($_POST['mobilenumber'], FILTER_SANITIZE_NUMBER_INT)) { die("Invalid Mobile Number"); } if(empty($_POST['profession'])) { die("Please enter your profession."); } // ===================================================== // 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, ) VALUES ( :username, :password, :salt, :email, :name, :gender, :dateofbirth, :nric, :address, :postalcode, :mobilenumber, :profession, ) "; // 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['dateofbith'], ':nric' =&gt; $_POST['nric'], ':address' =&gt; $_POST['address'], ':postalcode' =&gt; $_POST['postalcode'], ':mobilenumber' =&gt; $_POST['mobilenumber'], ':profession' =&gt; $_POST['profession'], ); 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;!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="" /&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="text" name="email" value="" /&gt; &lt;/div&gt; &lt;div class="form-group"&gt; &lt;label&gt;Password:&lt;/label&gt; &lt;input type="password" name="password" value="" /&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="" /&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" checked&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"&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="text" name="dateofbirth" value="" /&gt; &lt;/div&gt; &lt;div class="form-group"&gt; &lt;label&gt;NRIC:&lt;/label&gt; &lt;input type="text" name="nric" value="" /&gt; &lt;/div&gt; &lt;div class="form-group"&gt; &lt;label&gt;Address:&lt;/label&gt; &lt;input type="text" name="address" value="" /&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="" /&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"&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="" /&gt; &lt;/div&gt; &lt;input type="submit" class="btn btn-info" value="Register" /&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>
 

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