未定义的索引

时间:2013-03-26 07:22:36

标签: php database

这句话有什么不对吗?

错误返回:

  

注意:未定义的索引:inputBlock

     

注意:未定义索引:inputHouseUnit

代码:

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

6 个答案:

答案 0 :(得分:1)

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

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

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

显然,你必须小心逃避单引号和双引号。此外,在尝试将用户输入放入数据库之前,应验证用户输入。

答案 1 :(得分:0)

是的。看起来应该是这样的

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

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

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

答案 2 :(得分:0)

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

答案 3 :(得分:0)

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

  

这句话有什么不对吗?

不。您的陈述完全有效。

你收到这些消息的原因是空$ _POST数组。你最有可能用GET方法调用这段代码。

将您的代码放入if语句:

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

此外,您必须始终正确格式化查询。至少采用here

的方式

答案 4 :(得分:0)

确保从

输入这些变量

$ _ POST [inputBlock] $ _POST [inputHouseUnit]

在$ sql之前给它们打印。

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

答案 5 :(得分:0)

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

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

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

同时检查post方法是否正在接收任何值,或者因为你可能只发送一个值到你的php页面... 当变量没有从$_POST数组中获取任何值时,通常会反驳未定义的索引。