使用未定义的常量ugDept - 假设'ugDept'
当我尝试执行以下代码时出现此错误
$_10thPercentage=number_format($_POST['tenthPercentage'], 2, '.', ' ');
$query="
INSERT INTO academic
VALUES (
'".$_SESSION['roll']."',
'".$_POST[tenthMedium]."',
".$_10thPercentage.",
'".$_POST[twelthStudiedStatus]."',
".$_10thPercentage.",
'".$_POST[techStudiedStatus]."',
'".$_POST[techDept]."',
'".$_POST[techPercentage]."',
'".$_POST[appStudiedStatus]."',
'".$_POST[appDept]."',
'".$_POST[appPercentage]."',
'".$_POST[ugStudiedStatus]."',
'".$_POST[ugDept]."',
'".$_POST[ugCgpa]."',
'".$_POST[pgStudiedStatus]."',
'".$_POST[pgDept]."',
'".$_POST[pgCgpa]."')";
mysql_query($query);
只会将某个值传递给帖子。所以代码不起作用建议某种方法来解决它
答案 0 :(得分:11)
您可能需要更改所有$ _POST变量以使用引号(如果您不使用常量)。像这样:
$_POST['ugDept']
否则,PHP会查找名为 ugDept 的常量值,该值可能不存在。如果使用常量,请确保已正确定义。你可以这样做:
define('ugDept', 'someValueHere');
此外,正如其他人所建议的,您需要清理您的输入和您应该使用the Mysqli extension,而不是mysql_*
。就像现在一样,您的数据库存在SQL注入的风险,这很糟糕。
更新:要确保您的mysql_query
来电成功与否,请执行以下操作:
$result = mysql_query('{YOUR QUERY HERE}');
if (!$result) {
die('Invalid query: ' . mysql_error());
}
这将向您报告SQL错误。请注意,die
不一定是生产环境中最好的事情;但在发展中,它确实起到了作用。
答案 1 :(得分:1)
还要考虑清理你的输入。
答案 2 :(得分:0)
这意味着您的constact ugDept
未定义。只需像您必须完成的那样定义它,例如tenthMedium
答案 3 :(得分:0)
$ _ 10thPercentage不是来自post数组,应该是吗?此表的create语句也很有用。