2

I am executing some queries and am getting the following the error:

Parse error: syntax error, unexpected '$section2' (T_VARIABLE) on line 22

Line 22 is:

$section2 = $db->prepare("INSERT INTO learning_style_scores VALUES (5,12,4)");

I don't have a clue why I am getting this, I have checked my syntax and all seems to be correct. It basically doesn't like anything after the $section1 query is executed

EDIT:

I understand this is prone to SQL injection but I am doing it like this for testing purposes only.

<?php
    session_start();

    try {
    $db = new PDO("mysql:dbname=questionnaire;host=localhost", "root", ""); 
    $db->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); 
    }


    catch(Exception $e)
    {
    echo 'Caught exception: ',  $e->getMessage(), "\n";
    }


    $session = md5(session_id());

    // insert section1 data into database
    $section1 = $db->prepare('INSERT INTO section1 VALUES (7,"test")');

    $section1->execute();​


    // insert learning style score into database
    $section2 = $db->prepare("INSERT INTO learning_style_scores VALUES (5,12,4)");

    $section2->execute();​
    ?>
user3574492
  • 6,225
  • 9
  • 52
  • 105

1 Answers1

9

Your code has some weird characters after the semicolon of this line:

$section1->execute();​
$section2->execute();​  //same for this line

If you look into a hex editor you see this:

24 73 65 63 74 69 6f 6e 31 2d 3e 65 78 65 63 75 74 65 28 29 3b e2 80 8b  
                                                             //^^^^^^^^This bit right here

//And it should look like this:
24 73 65 63 74 69 6f 6e 31 2d 3e 65 78 65 63 75 74 65 28 29 3b  

See here:

enter image description here

(Yeah I know my circles aren't the nicest)

And this is how it should look like:

enter image description here


Solution?

Just write the statement new with your keyboard and your fingers.

Rizier123
  • 58,877
  • 16
  • 101
  • 156
  • 1
    Ha, Confirmed, Just hit delete/backspace after the `;` and the code parses. – Scuzzy Mar 09 '15 at 22:44
  • @Scuzzy Yes here this works too! You should notice that if you hit delete after the semicolon that it don't deletes the semicolon, it deletes the weird character – Rizier123 Mar 09 '15 at 22:51
  • 1
    Alternative solution: applying code formatting (CTRL+SHIFT+F) in Eclipse (presumably other editors as well) automagically gets rid of the extra chars making the code parseable. – lafor Mar 09 '15 at 22:51
  • Yes, this was it. I would probably never have figured that out myself, probably the most bizzare issues I've had in my whole time programming. Thank you! – user3574492 Mar 09 '15 at 23:01
  • 1
    @user3574492 You're welcome :D! *most bizzare issues I've had in my whole time programming* until now! Maybe the future will bring a better one. – Rizier123 Mar 09 '15 at 23:03
  • @Rizier123 just out of interest, how do you check this in a hex editor? – user3574492 Mar 09 '15 at 23:05
  • @user3574492 I used Notpad++ here and there is just a plugin where you can switch to hex view. But I'm pretty sure there is a plugin for every modern IDE (PhpStorm, Intellij IDEA, Eclipse maybe even for Sublime) – Rizier123 Mar 09 '15 at 23:08
  • @user3574492 Then you can install it under extensions->plugin manager available HEX-Editor – Rizier123 Mar 09 '15 at 23:32
  • Good catch on the weird `;` – Funk Forty Niner Mar 10 '15 at 00:03