这句话有什么不对吗?
错误返回:
注意:未定义的索引:inputBlock
注意:未定义索引:inputHouseUnit
代码:
if($conn){
$insertData = "INSERT INTO ESTATEUNIT (BLOCK, UNIT) VALUES ('$_POST[inputBlock]', '$_POST[inputHouseUnit]')";
}
答案 0 :(得分:1)
PHP数组索引是数字或字符串。
如果inputBlock
和inputHouseUnit
是字符串变量的标识符,则必须在其前面添加$
(例如$_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
数组中获取任何值时,通常会反驳未定义的索引。