T_STRING解析错误
问题描述:
我提交我我会见了T_STRING解析错误
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
表单时增加新的学生数据库,并呼吁NewStudentAddv2.phpphp脚本形式
<?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>";
?>
线40
$day = str_pad($today['mday'], 2, "0", STR_PAD_LEFT); //SYNTAX ERROR
我是PHP新手,似乎无法看到错误,任何帮助将不胜感激。
答
$yrCodes = array('07' => 'S', '08' => 'T', '09' => 'V', '10' => 'W);
缺失报价
$yrCodes = array('07' => 'S', '08' => 'T', '09' => 'V', '10' => 'W');
PHP认为,随着“开头的引号的字符串“W”跨越多行,并以“今天$ [关闭的引号结束”的第40行”使mday成为下一个代码令牌....因为这不是一个有效的代码令牌,而是一个字符串,所以会出现意外的T_STRING错误
+0
谢谢,不能相信我错过了。 – 2012-02-22 10:23:03
如果使用正确语法高亮显示的编辑器,此类错误很快就会变得明显。就像进一步编码的提示一样。 – Sirko 2012-02-22 10:21:27
我使用的Dreamweaver CS5,只是注意到一旦错误被纠正突出显示的变化,感谢您的建议。 – 2012-02-22 10:28:43