-1

这个说法有什么问题吗?

错误返回:

注意:未定义索引:inputBlock

注意:未定义索引:inputHouseUnit

代码:

if($conn){
    $insertData = "INSERT INTO ESTATEUNIT (BLOCK, UNIT) VALUES ('$_POST[inputBlock]', '$_POST[inputHouseUnit]')";
}
4

6 回答 6

1

PHP 数组索引是数字或字符串。

如果inputBlockinputHouseUnit是字符串变量的标识符,则必须在它们前面加上$(例如,$_POST[$inputBlock])。

如果它们是文字字符串,请将它们包含在'(单引号)或"(双引号)中(例如,$_POST["inputBlock"])。

显然,您必须小心转义单引号和双引号。此外,您应该在尝试将其放入数据库之前验证您的用户输入。

于 2013-03-26T07:25:36.287 回答
0

这里的所有答案都是错误的。甚至与这个问题相矛盾,显然表明它inputBlock被认为是数组索引。

这个说法有什么问题吗?

没有。你的陈述完全有效。

您收到这些消息的原因是空的 $_POST 数组。您很可能使用 GET 方法调用此代码。

将您的代码放入此 if 语句中:

if ($_SERVER['REQUEST_METHOD'] == 'POST') {
    // your code goes here
}

此外,您必须始终正确格式化查询。至少这里描述的方式

于 2013-03-26T11:25:58.573 回答
0

就在这里。它应该看起来像这样

if($conn){
    $insertData = "INSERT INTO ESTATEUNIT (BLOCK, UNIT) VALUES ('" . $_POST["inputBlock"] . "', '" . $_POST["inputHouseUnit"] . "')";
}

我使用了字符串连接,因此您不必转义引号。

您还应该考虑安全性,因为将原始帖子数据传递到数据库是非常不安全的 - 永远不要相信您的用户。

于 2013-03-26T07:27:05.903 回答
0
$insertData = "INSERT INTO ESTATEUNIT (BLOCK, UNIT) VALUES ('".$_POST['inputBlock']."', '".$_POST['inputHouseUnit']."')";
于 2013-03-26T07:27:14.150 回答
0

将各个后期操作的值存储在单独的变量中,然后在echo函数中使用它们......就像这样......

$x=$_POST[inputBlock];
<br>$y=$_POST[inputHouseUnit];

然后替换echo函数中的变量....

还要检查 post 方法是否接收到任何值,因为您可能只向 php 页面发送了一个值...当变量没有从$_POST数组中获取任何值时,通常会计算未定义的索引。

于 2017-05-23T08:27:22.443 回答
0

确保这些变量是从

$_POST[inputBlock] $_POST[inputHouseUnit]

在 $sql 之前打印它们。

另外,请确保您指定了 method=POST 。如果没有,这些变量将作为 GET 提供。

于 2016-06-15T13:42:01.993 回答