语法没问题,都是对的
是不是这些变量值$userid,$sex...没有取过来?
如果你是get传送建议用
$userid=$_GET['userid']
用post传送的话建议用
$userid=$_POST['userid']
取数据后再执行数据库操作应该就没问题
是不是这些变量值$userid,$sex...没有取过来?
如果你是get传送建议用
$userid=$_GET['userid']
用post传送的话建议用
$userid=$_POST['userid']
取数据后再执行数据库操作应该就没问题
$strSql="insert into reguser(userid,sex,age,tel,email,address)
values('$userid','$sex','$age','$tel','$email','$address')";
$result=mysql_query($strSql,$myconn);// 取得前一次 MySQL 操作所影响的记录行数
// 验证是否真的插入成功了
var_dump(mysql_affected_rows());
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<title>用户注册</title>
</head><body>
<?php/**************************************
文 件 名:userreg.php
用 途:用户注册
编写日期:2006-01-07
程序设计:七月十五
备 注:由于数据库用户表开始取名为user,刚好是系统的保留字,所以一直不能成功。换成reguser一切正常。注意系统规则。
**************************************/include("head.php");
//$link=pg_connect($conn2pg) or die("<br>不能连接到PostgreSQL!");if($submitreg) //如果用户提交注册信息
{$link=pg_connect($conn2pg) or die("<br>不能连接到PostgreSQL!");//格式用户输入信息
//以下是可能出现的问题,应该用客户端代码来解决,如JAVASCRIPT,目前先用PHP来完成
//printf("%s %s %s %s",$name,$pwd,$checkpwd,$mail);//此行用于检测提交表单值是否被传递 if($pwd<>$checkpwd)
{
printf("<b>提示:</b><br>两次密码不一样!");
die("<br>注册未成功! <a href=\"userreg.php\">重新注册</a> ");
}
if(!ereg('^[-!#$%&\'*+\\./0-9=?A-Z^_`a-z{|}~]+'.'@'.'[-!#$%&\'*+\\/0-9=?A-Z^_`a-z{|}~]+\.'.'[-!#$%&\'*+\\./0-9=?A-Z^_`a-z{|}~]+$',$mail))
//正则表达式里的一长串字符是用于检测电子邮件的格式正确与否的
{
printf("<b>提示:</b><br>电子邮件格式有误!请正确填写!");
die("<br>注册未成功! <a href=\"userreg.php\">重新注册</a> ");
} if(pg_num_rows(pg_query("SELECT * FROM reguser WHERE username='$name'")))
//pg_num_rows返回pg_query查询的行数,如果用户名或电子邮件有相同,则返回为1,用户名和电子邮件都是唯一约束
{
printf("<b>提示:</b><br>用户名已被注册!");
die("<br>注册未成功! <a href=\"userreg.php\">重新注册</a> ");
} if(pg_num_rows(pg_query("SELECT * FROM reguser WHERE email='$mail'")))
{
printf("<b>提示:</b><br>E-mail已被注册,一个E-mail只能注册一个用户");
die("<br>注册未成功! <a href=\"userreg.php\">重新注册</a> ");
}//写入数据库
//$sql="INSERT INTO user (username,password,email) VALUES ('$name','$pwd','$mail')";$sql="INSERT INTO reguser(username,password,email) VALUES ('$name','$pwd','$mail')";
$result=pg_query($sql);
if($result)
{
printf("<b>提示:</b><br>注册成功!请 <a href=\"userlogin.php\">登入</a> 系统!");
}
else
{
printf("<b>提示:</b><br>系统原因或是服务器繁忙!");
die("<br>注册未成功! <a href=\"userreg.php\">重新注册</a> ");
}}
else //未提交注册信息,则输出注册表单
{
?>
<table>
<caption>用 户 注 册</caption>
<tr><td>
<form method="post" action="<?php echo $PATH_INFO ?>">
用户帐号: <input type="text" name="name"> * 最长20字符,支持中文 </a><br>
用户密码: <input type="password" name="pwd"> * 为了您的安全,密码不能过于简单<br>
确认密码: <input type="password" name="checkpwd"> * 请再输一次密码,两次需保持一致<br>
电子邮件: <input type="text" name="mail"> * 请确保您的电子邮箱可以正常使用<br>
<br>
<input type="submit" name="submitreg" value=" 注 册 ">
<input type="reset" name="reset" value=" 重 写 ">
</form>
</td></tr>
<tr><td>
<ul>
<li>为了您能方便的注册,带 * 请务必填写。
<li>如果您需要扩展您的个人信息,请点击 <a href="userctrl.php">用户控制面板</a> 进行补登。
<li>请务必遵守相关的 <a href="rule/webrule.php">法律规定</a> 和 <a href="rule/localrule.php">本站约定</a> ,谢谢!
</ul>
</td></tr>
</table>
<?php
}
include("foot.php");
?>
</body>
</html>给你一个源码是PostgreSQL的,但原理一样。
我估计是你没有构建表单输入。
还有MySQL的用户名和密码默认为root和空。
values('$userid','$sex','$age','$tel','$email','$address')";values中如果有任何一项是错误的或是空的就不能写入数据库,并且不报错,你检查一下$_POST。
insert into reguser(userid,sex,age,tel,email,address) values ('','','','','','');reguser {
int userid PK
...
...
}呵呵