2017-02-21 16 views
-3

Exact Ошибка:SQLSTATE [42000]: Ошибка синтаксиса или нарушение доступа: 1064 У вас есть ошибка в синтаксисе SQL;

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 '' at line 20

Я новичок в SQL и PHP, так как часть присвоения мне было предложено изменить код наставника и вставить в свой проект. Однако, когда я запускаю код, в нем появляется синтаксическая ошибка SQL в строке 20 (где открывается тег <body>). Может ли кто-нибудь помочь мне определить ошибку? Я действительно новичок в этой вещи, и я извиняюсь заранее, если это рассматривается как «грубый» или, если я тратить свое время < 3.

<!DOCTYPE HTML> 
<html> 

<head> 
    <title>"Sign Up" Form:</title> 
    <meta charset="utf-8" /> 
    <meta name="viewport" content="width=device-width, initial-scale=1" /> 

    <!-- Latest compiled and minified CSS --> 
<!-- Latest compiled and minified CSS --> 
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.6/css/bootstrap.min.css" integrity="sha384-1q8mTJOASx8j1Au+a5WDVnPi2lkFfwwEAa8hDDdjZlpLegxhjVME1fgjWPGmkzs7" crossorigin="anonymous"> 

<!-- Optional theme --> 
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.6/css/bootstrap-theme.min.css" integrity="sha384-fLW2N01lMqjakBkx3l/M9EahuwpSfeNvV63J5ezn3uZzapT0u7EYsXMjQV+0En5r" crossorigin="anonymous"> 

<!-- Latest compiled and minified JavaScript --> 
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.6/js/bootstrap.min.js" integrity="sha384-0mSbJDEHialfmuBBQP6A4Qrprq5OVfW37PRR3j5ELqxss1yVqOtnepnHVP9aJ7xS" crossorigin="anonymous"></script> 
</head> 

<body> 
    <div id="page-wrapper"> 
     <div class="wrapper style1"> 
      <section id="main" class="container"> 

       <?php 
        //------------------------------------------------- 
        $firstNameVal = 'Insert First Name'; 
        $lastNameVal = 'Insert Surname'; 
        $usernameVal = 'Choose a Username'; 
        $passwordVal = '-------'; 
        $emaiAddresslVal = 'Insert email'; 
        $addressVal = 'Insert Address'; 
        $suburbVal = 'Insert Suburb'; 
        $ageVal = '17'; 

        //------------------------------------------------- 



        //database credentials 
        define('DBHOST','localhost'); 
        define('DBUSER','root'); 
        define('DBPASS','root'); 
        define('DBNAME','Login'); 

        //new database connection 
        $db = new PDO("mysql:host=".DBHOST.";port=3306;dbname=".DBNAME, DBUSER, DBPASS); 
        $db->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); 

        //if form has been submitted process it 
        if(isset($_POST['submit'])){ 
         // ??? 
         $_POST = array_map('stripslashes', $_POST); 

         //collect form data 
         extract($_POST); 

         //very basic validation 
         if($firstName ==''){ 
          $error[] = 'Please enter a first name.'; 
         } 
         if($lastName ==''){ 
          $error[] = 'Please enter a last name.'; 
         } 

         if($username ==''){ 
          $error[] = "Please enter a username"; 
         } 
         if($password ==''){ 
          $error[] = 'Please enter a password'; 
         } 
         if($emailAddress ==''){ 
          $error[] = 'Please enter an email address.'; 
         } 
         if($address ==''){ 
          $error[] = "Please enter your address"; 
         } 
         if($suburb ==''){ 
          $error[] = 'Please enter your suburb.'; 
         } 
         if($mobile ==''){ 
          $error[] = 'Please enter your personal mobile number.'; 
         } 
         if($age == ''){ 
          $error[] = 'Please enter your age!'; 
         } 
         if(!isset($error)){ 

          try { 

           //insert into database 
           $query = $db->prepare('INSERT INTO user(
           firstName, 
           lastName, 
           username, 
           password, 
           emailAddress, 
           address, 
           suburb, 
           age, 
           mobile) 
           VALUES (
           :firstName, 
           :lastName, 
           :username, 
           :password, 
           :emailAddress, 
           :address, 
           :suburb, 
           :age, 
           :mobile, 
           '); 
           $query->execute(array(
            ':firstName' => $firstName, // processes the values for each form field 
            ':lastName' => $lastName, // 
            ':username' => $username, // 
            ':password' => $password, // 
            ':emailAddress' => $emailAddress, // 
            ':address' => $address, // 
            ':suburb' => $suburb, // 
            ':age' => $age, // 
            ':mobile' => $mobile, // 
           )); 

           //redirect to index page 
           header('Location: success.php'); 
           exit; 
           // if error, it displays error 
          } catch(PDOException $e) { 
           echo $e->getMessage(); 
          } 
         } 
        } 
        //check for any errors 
        if(isset($error)){ 
         echo '<section id="content" class="box" style="background-color: #F4CDCD;">'; 
          echo '<h3>Errors</h3>'; 
          echo '<b><ul>'; 
          foreach($error as $error){ 
           echo '<li>'.$error.'</li>'; 
          } 
          echo '</ul></b>'; 
         echo '</section>'; 
        } 
       ?> 

        <form method="post"> 

         <!-- Your Details --> 
         <section id="content" class="box"> 
          <h3>Your Details</h3> 
          <div class="row uniform 60%"> 
           <div class="6u 12u(narrower)"> 
            <label for="firstName">First Name</label> 
            <input type="text" name="firstName" id="firstName" value="<?php if(isset($error)){ echo $_POST['firstName'];}?>" placeholder="First Name" /> 
           </div> 
           <div class="6u 12u(narrower)"> 
            <label for="lastName">Last Name</label> 
            <input type="text" name="lastName" id="lastName" value="<?php if(isset($error)){ echo $_POST['lastName'];}?>" placeholder="Last Name" /> 
           </div> 
          </div> 

          <div class="row uniform 60%"> 
           <div class="6u 12u(narrower)"> 
            <label for="username">username</label> 
            <input type="text" name="username" id="username" value="<?php if(isset($error)){ echo $_POST['username'];}?>" placeholder="Userame" /> 
           </div> 
           <div class="6u 12u(narrower)"> 
            <label for="password">password</label> 
            <input type="password" name="password" id="password" value="<?php if(isset($error)){ echo $_POST['password'];}?>" placeholder="Password" /> 
           </div> 
          </div> 
          <div class="row uniform 60%"> 

           <div class="6u 12u(narrower)"> 
            <label for="emailAddress">Email</label> 
            <input type="email" name="emailAddress" id="emailAddress" value="<?php if(isset($error)){ echo $_POST['emailAddress'];}?>" placeholder="[email protected]" /> 
           </div> 
           <div class="6u 12u(narrower)"> 
            <label for="mobile">Mobile</label> 
            <input type="text" name="mobile" id="mobile" value="<?php if(isset($error)){ echo $_POST['mobile'];}?>" placeholder="1234 567 890" /> 
           </div> 
           <div class="6u 12u(narrower)"> 
            <label for="age">Age</label> 
            <input type="text" name="age" id="age" value="<?php if(isset($error)){ echo $_POST['age'];}?>" placeholder="17" /> 
           </div> 
          </div> 
          <div class="row uniform 60%"> 

           <div class="6u 12u(narrower)"> 
            <label for="address">Address</label> 
            <input type="text" name="address" id="address" value="<?php if(isset($error)){ echo $_POST['Address'];}?>" placeholder="21B Baker Street" /> 
           </div> 
           <div class="6u 12u(narrower)"> 
            <label for="suburb">Mobile</label> 
            <input type="text" name="suburb" id="suburb" value="<?php if(isset($error)){ echo $_POST['suburb'];}?>" placeholder="marylebone" /> 
           </div> 

          </div> 
         </section> 

         <br> 
         <!-- Submit Button --> 
         <section id="content" class="box"> 
          <div class="row uniform 60%"> 
           <div class="12u"> 
            <ul class="actions"> 
             <li style="width: 100%; list-style: none; "> 
              <input type="submit" name="submit" value="Finish and Submit" style="width: 100%;" /> 
             </li> 
            </ul> 
           </div> 
          </div> 
         </section> 

        </form> 

      </section> 
     </div> 

    </div> 
<!-- Scripts --> 
</body> 

</html> 
+1

': мобильный,' << это опечатка –

+2

Фред означает "экстра", '. mysql не очень любезен, кроме того, что в отличие от PHP или javascript. – Xorifelse

+0

Однако, на downvote .. для нового пользователя код правильно отформатирован, и все необходимое для его решения есть. Я лично только вниз downwote легкие вопросы, как кнопка downvote предлагает: 'Этот вопрос не показывает никаких исследований усилий; это неясно или не полезно. – Xorifelse

ответ

0

Пожалуйста, удалите последнюю , запятую из SQL и повторите попытку. Это означает, что изменить это:

//insert into database 
$query = $db->prepare('INSERT INTO user(
firstName, 
lastName, 
username, 
password, 
emailAddress, 
address, 
suburb, 
age, 
mobile) 
VALUES (
:firstName, 
:lastName, 
:username, 
:password, 
:emailAddress, 
:address, 
:suburb, 
:age, 
:mobile, 
'); 

к этому:

//insert into database 
$query = $db->prepare('INSERT INTO user(
firstName, 
lastName, 
username, 
password, 
emailAddress, 
address, 
suburb, 
age, 
mobile) 
VALUES (
:firstName, 
:lastName, 
:username, 
:password, 
:emailAddress, 
:address, 
:suburb, 
:age, 
:mobile 
'); 
+1

Спасибо! Мне также нужно было поставить скобку после запятой после мобильного, и это сработало !! –