我使用文本框通过POST向数据库发送数据时出错 . 错误是“注意:在线未定义索引”
我怎么解决这个问题 ?
这是我的代码:
<?php
error_reporting(0);
$con = mysql_connect("localhost","root","");
mysql_select_db("hello", $con);
$result = mysql_query("SELECT Max(id) as id from `aoa` WHERE 1");
$row = mysql_fetch_array($result);
{
echo $row['id'];
}
if($v=="")
{
$v=1000;
}
$v=$row['id'];
$v=$v+1;
$id=$v;
$sql="INSERT INTO aoa(id,name,clss)
VALUES
('$id','$_POST[name]','$_POST[clss]')";
var_dump($sql);
if (!mysql_query($sql,$con))
{
die('Data InsertionError: ' . mysql_error());
}
echo "Successfully Registered";
mysql_close($con);
?>
(这是我的错误文件)
Notice: C:\wamp\www\Register.php line 31 - Undefined index: clss
Notice: C:\wamp\www\Register.php line 31 - Undefined index: name
Notice: C:\wamp\www\Register.php line 17 - Undefined variable: v
3 回答
v未定义的问题就在这一行
如果未设置$ v,则不是“” . 你可以使用例如
另外,使用var_dump()检查您的帖子标志
这样你就可以看出你是否设置了'clss'和'name',我怀疑它们不是 .
你目前的代码也容易受到sql injection的影响,你应该在所有变量上使用mysql_real_escape_string,然后才能在sql中使用它们 .
甚至更好地使用像PDO这样的东西
这不是错误,而是一个通知 . 您收到它们是因为设置了
error_reporting
php.ini
指令 . 您可以在使用前声明变量来消除它 .你还没有声明你的变量clss,name和v ......在脚本的顶部添加类似的东西
除此之外,您的代码中也有一些错误 . $ _POST值必须提供单引号或双引号,如$ _POST ['clss']或$ _POST [“name”] . 否则,您的脚本将无法按照您的意图运行 .
应该这样做 .