Friday 10 August 2018

php - Parse error: syntax error, unexpected (T_VARIABLE)



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.



    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();​
?>

Answer



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.


No comments:

Post a Comment

php - file_get_contents shows unexpected output while reading a file

I want to output an inline jpg image as a base64 encoded string, however when I do this : $contents = file_get_contents($filename); print &q...