为什么php数据库中通过表单插入的数据记录为空?

时间:2022-08-15 21:42:29
我现在想向数据库中插入数据,可是总是失败,具体表现为插入的是空记录,也就是表单数据没有得到,请您帮助看看。我的数据库表文件为
CREATE TABLE resume (name varchar(20),address varchar(255),position varchar(50));
INSERT INTO resume VALUES ('www','beijing','manager');
INSERT INTO resume VALUES ('sss','shanghai','wife');

post.htm文件如下:

<html>
<body>
<p></p> 
<form method="POST" action="insert.php" ENCTYPE="multipart/form-data"> 
<p><b>个人简历提交</b></p> 
<p>姓名:<br> 
<input type="text" name="name" size="20"></p> 
<p>地址:<br> 
<p><input type="text" name="address" size="20"></P>
<p>职称:<br> 
<input type="text" name="position" size="20"></p>
<p><input type="submit" value="提交" name="B1"></p> 
</form> 
</body>
</html>

insert.php文件如下:

<? 
echo $name;
if($name!= "none") 
$LinkID=@mysql_connect("localhost", "root" , "") or die("不能连接到数据库服务器!可能是数据库服务器没有启动,或者用户名密码有误!"); 
$DBID = @mysql_select_db("jinghua",$LinkID) or die("选择数据库出错,可能是您指定的数据库不存在!"); 
$query = "insert into Resume(Name,address,position) values('$Name', '$address', '$position')"; 
$result = @mysql_query("$query",$LinkID); //执行查询,插入文件到数据库 
if(! $result) 
 echo "数据插入失败!"; 
else 
 echo "插入数据成功!"; 
@mysql_close($LinkID); 
?>

9 个解决方案

#1


insert.php能不能得到$name呢?
还有,把post.htm中ENCTYPE="multipart/form-data"去掉看看

#2


可能是不能识别变量:$name等,需要设置php.ini中的register_globals = On
或者用$_POST['name']代替$name,其它类似。

#3


PHP是区分大小写的
你的表名。。。。。写清楚是一下

#4


从4.几的版本(具体不知道了),从表单传递的变量应该用$_post,$_get等数组了。

#5


我用echo $name显示得不到值,为什么?

#6


jxyuhua(★★★★★) 不愧自封为5星级的,你真厉害,问题就是你说的,register_globals = On设置了就好了!

#7


建议还是不要什么register_globals = On了,手册里都写明了不推荐这种写法

表单提交用
$_POST['表单框名']、$_GET['表单框名']

还是直接用新的方法吧

#8


如何使用,在post.htm,还是insert.php中,在什么位置用?

#9


如果你的表单用post方式提交的:
$query = "insert into Resume(Name,address,position) values('{$_POST['Name']}', '{$_POST['address']}','{$_POST['position']}')";
如果你的表单用get方式提交的:
$query = "insert into Resume(Name,address,position) values('{$_GET['Name']}', '{$_GET['address']}','{$_GET['position']}')";

#1


insert.php能不能得到$name呢?
还有,把post.htm中ENCTYPE="multipart/form-data"去掉看看

#2


可能是不能识别变量:$name等,需要设置php.ini中的register_globals = On
或者用$_POST['name']代替$name,其它类似。

#3


PHP是区分大小写的
你的表名。。。。。写清楚是一下

#4


从4.几的版本(具体不知道了),从表单传递的变量应该用$_post,$_get等数组了。

#5


我用echo $name显示得不到值,为什么?

#6


jxyuhua(★★★★★) 不愧自封为5星级的,你真厉害,问题就是你说的,register_globals = On设置了就好了!

#7


建议还是不要什么register_globals = On了,手册里都写明了不推荐这种写法

表单提交用
$_POST['表单框名']、$_GET['表单框名']

还是直接用新的方法吧

#8


如何使用,在post.htm,还是insert.php中,在什么位置用?

#9


如果你的表单用post方式提交的:
$query = "insert into Resume(Name,address,position) values('{$_POST['Name']}', '{$_POST['address']}','{$_POST['position']}')";
如果你的表单用get方式提交的:
$query = "insert into Resume(Name,address,position) values('{$_GET['Name']}', '{$_GET['address']}','{$_GET['position']}')";