2017-02-21 4 views
-3

Exact Fehler:SQLSTATE [42000]: Syntaxfehler oder Zugriffsverletzung: 1064 Sie haben einen Fehler in Ihrer SQL-Syntax;

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

Ich bin zu SQL und PHP völlig neu, so dass im Rahmen einer Zuweisung ich ein Mentor Code bearbeiten und einfügen in mein Projekt gefragt wurde. Wenn ich jedoch den Code ausführe, kommt es zu einem SQL-Syntaxfehler in Zeile 20 (wo sich das <body>-Tag öffnet). Könnte mir bitte jemand helfen, den Fehler zu lokalisieren? Ich bin auf diese Sachen wirklich neu, und es tut mir leid im Voraus, wenn dies als „unfreundlich“ zu sehen ist oder wenn ich Ihre Zeit < 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

': Handy,' << es ist ein Tippfehler –

+2

Fred bedeutet die "extra" ','. mysql ist nicht so gnädig, ausgenommen im Gegensatz zu PHP oder Javascript. – Xorifelse

+0

Aber auf der Downvote .. für einen neuen Benutzer ist der Code richtig formatiert und alles, was benötigt wird, um es zu lösen ist da. Ich persönlich ermuntere nur mühelose Fragen wie der Downvote-Button: "Diese Frage zeigt keinerlei Forschungsaufwand; Es ist unklar oder nicht nützlich. – Xorifelse

Antwort

0

Bitte entfernen Sie das letzte , Komma von der Verschwendung SQL-Anweisung und versuchen Sie es erneut. Das bedeutet, dass sich dies ändern:

//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, 
'); 

dazu:

//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

Danke !! Ich musste auch eine Klammer nach dem Komma nach dem Handy setzen und es hat funktioniert !! –

Verwandte Themen