I have a form for adding new students to a Database and a php script called NewStudentAddv2.php
when submitting the form i am met with
Parse error: syntax error, unexpected T_STRING, expecting ‘)’ in /var/www/vhosts/numyspace.co.uk/web_users/home/~unn_w11026991/public_html/NewStudentAddv2.php on line 40
NewStudentAddv2.php
<?php
require_once( "myfunctions.php" );
try {
/**
* ** connect using the getConnection function written in myfunctions.php **
*/
$db = getConnection();
// ********************************
// *** SAVE THE STUDENT DETAILS ***
// ********************************
echo "<h2>New Student</h2>\n";
$forename = $_POST['forename'];
$surname = $_POST['surname'];
$studytypeID = $_POST['studytypeID'];
$startyear = $_POST['startyear'];
// Determine the first character for a new student code.
$yrCodes = array('07' => 'S', '08' => 'T', '09' => 'V', '10' => 'W);
$yr = substr($startyear, 3, 2); // Extract the last 2 digits from the year.
$code = $yrCodes[$yr]; // Get the corresponding letter from the array.
$today = getdate(); // Get the current date (returns an associated array).
// Extract the day, month and year from the date and pad each string
// to 2 characters (leading zero).
$day = str_pad($today['mday'], 2, "0", STR_PAD_LEFT); //SYNTAX ERROR
$mth = str_pad($today['mon'], 2, "0", STR_PAD_LEFT);
$year = substr($today['year'], 2,2);
$code .= $day.$mth.$year; // Create a new student code.
// Formulate a string containing the SQL INSERT statement.
// NOTE: Only the values corresponding to character fields in the
// database table are delimited with ' '. Values for numeric
//fields do not need to be delimited.
$sql = "INSERT INTO student (studentCode, forename, surname, studytypeID, startyear) VALUES
(:code, :forename, :surname, :studytypeID, :startyear)";
$stmt = $db->prepare($sql);
$stmt->bindParam(':code', $code, PDO::PARAM_STR);
$stmt->bindParam(':forename', $forename, PDO::PARAM_STR );
$stmt->bindParam(':surname', $surname, PDO::PARAM_STR );
$stmt->bindParam(':studytypeID', $studytypeID);
$stmt->bindParam(':startyear', $startyear);
// Parse the SQL statement.
$stmt->execute();
}
catch( PDOException $e ) {
// Handle an error, if any.
echo "<p><strong>Error:</strong> The details for student '$forename $surname' \n";
echo "have not be saved in the database. Please consult the system administrator \n";
echo "with the error message '".$e->getMessage()."'.</p>\n";
}
// Display 'success' message to the user.
echo "<p>The details for student '$forename $surname: $code, $studytypeID, $startyear' have successfully been saved \n";
echo "to the database.</p>\n";
echo "<p><a href=\"NewStudentForm.php\">Enter a new student</a>\n</p>";
?>
Line 40
$day = str_pad($today['mday'], 2, "0", STR_PAD_LEFT); //SYNTAX ERROR
I am new to PHP and cant seem to see the error, any help would be appreciated.
missing quote
PHP thinks that the quoted string that begins with “‘W” spans multiple lines, and ends at the closing quote of “$today[‘” in line 40, making mday the next code token…. as this ais not a valid code token but a string, you get the unexpected T_STRING error