-1

我在 php 中创建一个应用程序,在该应用程序中我在这一行收到错误 #

$sql="INSERT INTO table ( `rollnum`,'sessionid', `class`, `subject`, `theory`, `practical`, `type_of`, `term`) VALUES ('$students['rollnum']', '$session','$class','$subject['id']','$_REQUEST[$subject['id'].'_'.$students['rollnum'].'_th']','$_REQUEST[$subject['id'].'_'.$students['rollnum'].'_pr']', '$examtype', '$examsubtype')";

我不知道这条线有什么问题。我什至在一个在线平台上检查过。他们也说#(上)行有错误。任何可以帮助我的人谢谢

4

4 回答 4

3

您可能需要用大括号将变量括在双引号字符串中。

$string = "I want to use {$variable1} and {$variable['thisKey']}";

或以下,运行起来要快一点;

$string = 'I want to use'.$variable1.'and '.$variable['thisKey'];

所以这应该可以解决您的直接问题,但是您的查询对注入非常开放,这可能非常糟糕,特别是如果您$_REQUEST在查询字符串中使用正确的话。我建议在运行查询语句之前先准备好查询语句,并确保所有危险的东西都被转义。

我回答了另一个问题,其中包括使用此答案在此处进行查询的安全方法

于 2012-07-05T14:33:48.187 回答
1

您需要在字符串中用大括号将变量名括起来:

$sql="INSERT INTO stdexamrecord ( `rollnum`,'sessionid', `class`, `subject`, `theory`, `practical`, `type_of`, `term`) VALUES (
'${students['rollnum']}', 
'$session',
'$class',
'${subject['id']}',
' " . $_REQUEST[ $subject['id'] . '_' . $students['rollnum'] . '_th'] . "',
' " . $_REQUEST[ $subject['id'] . '_' . $students['rollnum'] . '_pr'] . "',
'$examtype', 
'$examsubtype')";
于 2012-07-05T14:24:48.493 回答
1

如果你的 PHP 环境有这些设置:display_errors = On; error_reporting = E_ALL,你会看到:

PHP Parse error: syntax error, unexpected '' (T_ENCAPSED_AND_WHITESPACE), expecting identifier (T_STRING) or variable (T_VARIABLE) or number (T_NUM_STRING)

就像在这个例子中一样:

$array['value'] = 'test';
echo "$array['value']";

它应该是这样的:

echo "".$array['value']."";
echo "{$array['value']}";

无论如何,您可以使用数字键:

$array[0] = 'test';
echo "$array[0]";
于 2012-07-05T14:29:28.643 回答
-1

尝试使用可以帮助您在正确位置找到错误的dreamweaver 或net bean

于 2012-08-26T20:29:39.293 回答