-1

使用未定义的常量 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);

只有特定的值会传递给帖子。所以代码不起作用建议一些方法来解决它

4

4 回答 4

11

您可能需要更改所有 $_POST 变量以使用引号(如果您不使用常量)。像这样:

$_POST['ugDept']

否则,PHP 会查找名为ugDept的常量值,该值可能不存在。如果您使用常量,请确保您已正确定义它。你可以这样做:

define('ugDept', 'someValueHere');

此外,正如其他人所建议的那样,您需要清理您的输入,并且您应该使用Mysqli 扩展,而不是mysql_*. 就像现在一样,您的数据库存在 SQL 注入的风险,这很糟糕。

更新:要确保您的mysql_query通话是否成功,请执行以下操作:

$result = mysql_query('{YOUR QUERY HERE}');
if (!$result) {
    die('Invalid query: ' . mysql_error());
}

这将向您报告 SQL 错误。请注意,die在生产环境中,ing 不一定是最好的选择。但在开发中,它可以完成工作。

于 2012-08-22T12:43:47.897 回答
1

还要考虑清理您的输入。

于 2012-08-22T12:45:39.183 回答
0

$_10thPercentage 不是从 post 数组中获取的,应该是吗?表的创建语句也会有所帮助。

于 2012-08-22T12:45:37.513 回答
0

这意味着您的 constactugDept未定义。只需像您必须完成的那样定义它,例如tenthMedium

于 2012-08-22T12:43:43.917 回答