Notice: Undefined index: ArLebel in E:\xampp\htdocs\proj\example\insert.php on line 15.
这是Dropdown的html代码。
<tr>
<td>Level</td>
<td><select name="ArLevel">
<option value="beginner">Beginner</option>
<option value="intermeted">Intermeted</option>
<option value="advance">Advance</option>
</select>
</td>
</tr>
<tr>
<td>Subject</td>
<td><select name="ArSubject">
<option value="politic">Politic</option>
<option value="islamic law">Islamic Law</option>
</select>
</td>
</tr>
这是我的PHP代码:
<?php
if (isset($_POST['submit'])) {
$con = mysql_connect("localhost","root","");
if(!$con){
die("Can not connect:" . mysql_error());
}
//Database Connection
mysql_select_db("example",$con);
$sql = "INSERT INTO datainsert(ArticleDate,ArticleAuthor,ArticleSource,ArLevel,ArSubject)
VALUES ('$_POST[ArticleDate]','$_POST[ArticleAuthor]','$_POST[ArticleSource]','$_POST[ArLebel]','$_POST[ArSubject]')";
mysql_query($sql,$con);
mysql_close($con);
}
?>
答案 0 :(得分:1)
您的代码中只有拼写不匹配错误: -
您在选择选项中使用"ArLevel"
,只需选择级别
你在$_POST["ArLebel"]
$_POST["ArLevel"]
唯一的错误是b & v
答案 1 :(得分:0)
数组键以字符串形式给出,字符串应该用引号括起来,即使你已经在一个字符串中(或者是heredocs / nowdocs,但这里不相关):
它是$variableName["keyName"]
,而不是$variableName[keyName]
,除非keyName是定义的常量。
变化
'$_POST[ArLebel]','$_POST[ArSubject]'
进入
'{$_POST["ArLebel"]}','{$_POST["ArSubject"]}'
{}允许在其他字符串中使用索引变量。
如果没有正确执行此操作,可能会让您注意到假设字符串不是常量。
但是看到你有一个不同的通知消息(未定义的索引),它也告诉你找不到整个索引(字符串也不是常量)...所以你需要检查为什么$_POST["ArSubject"]
不存在
您是否看过Tun Zarni Kyaw关于可能在某处错误拼写ArLevel
为ArLebel
的评论?
警告:强>
您的代码容易受到SQL注入攻击!在将变量放入查询之前,请先清理它们的变量!
答案 2 :(得分:0)
使用isset()
检查POST变量是否已设置。在插入数据库之前,最好还是转义POST变量。
<?php
if (isset($_POST['submit'])) {
$con = mysql_connect("localhost","root","");
if(!$con){
die("Can not connect:" . mysql_error());
}
//Database Connection
mysql_select_db("example",$con);
$ArticleDate = isset($_POST['ArticleDate']) ? $_POST['ArticleDate'] : '';
$ArticleAuthor = isset($_POST['ArticleAuthor']) ? $_POST['ArticleAuthor'] : '';
$ArticleSource = isset($_POST['ArticleSource']) ? $_POST['ArticleSource'] : '';
$ArLebel = isset($_POST['ArLebel']) ? $_POST['ArLebel'] : '';
$ArSubject = isset($_POST['ArSubject']) ? $_POST['ArSubject'] : '';
$sql = "INSERT INTO datainsert(ArticleDate,ArticleAuthor,ArticleSource,ArLevel,ArSubject)
VALUES ('$ArticleDate','$ArticleAuthor','$ArticleSource','$ArLebel','$ArSubject')";
mysql_query($sql,$con);
mysql_close($con);
}
?>