要被折磨死了!php问题求助!

小鹰信息技术服务部 2011-07-27 06:20:34
貌似这是php里面最基础的一个东西,填写会员注册页面,然后把信息加入MySQL数据库,貌似每一个小部分的功能都行了,但是最后填写完信息按下注册按钮的时候就出现这个错误提示:
数据表:member增加记录失败!You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '' at line 1



以下是php页面的代码:从上到下验证了每一个文本框输入的数据,最后连接服务器和数据库,把信息加入数据库
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<title>无标题文档</title>
</head>

<body>
<?php
if (empty($_POST['u_sfzh'])) die("身份证号不能为空。<br>");
else if (strlen($_POST['u_sfzh'])!=18) die("身份证号应该是18个字符。<br>");
else if (! is_numeric($_POST['u_sfzh'])) die("身份证号应是18个数字字符。<br>");
else $v_value="values('".$_POST['u_sfzh']."',";

if (empty($_POST['u_hyxm'])) die("会员姓名不得是空。<br>");
else if (strlen($_POST['u_hyxm'])<4) die("会员姓名应是4个以上字符。<br>");
else $v_value=$v_value."'".$_POST['u_hyxm']."',";

if (empty($_POST['u_hymm1'])||empty($_POST['u_hymm2'])) die("会员密码不能是空。<br>");
else if (strlen($_POST['u_hymm1'])<4||strlen($_POST['u_hymm2'])<4) die("会员密码至少是4个字符。<br>");
else if ($_POST['u_hymm1']!=$_POST['u_hymm2']) die("两次输入的会员密码不一致。<br>");
else $v_value=$v_value."'".$_POST['u_hymm1']."',";

if (empty($_POST['u_lxdh'])) die("联系电话不能是空。<br>");
else if (! is_numeric($_POST['u_lxdh'])) die("联系电话应是数字字符。<br>");
else $v_value=$v_value."'".$_POST['u_lxdh']."',";

if (empty($_POST['u_lxdz'])) die("联系地址不能是空。<br>");
else if (strlen($_POST['u_lxdz'])<6) die("联系地址至少应是6个字符。<br>");
else $v_value=$v_value."'".$_POST['u_lxdz']."',";

if (empty($_POST['u_yhmc'])||empty($_POST['u_yhkh'])) die("银行名称和银行卡号不能为空。<br>");
else if (strlen($_POST['u_yhmc'])<4||strlen($_POST['u_yhkh'])<4) die("银行名称和银行卡号至少是4个字符。<br>");
else $v_value=$v_value."'".$_POST['u_yhmc']."',";
$v_value=$v_value."'".$_POST['u_yhkh']."',";
$v_time=date("Y-m-d H:i:s");
$v_value=$v_value."'".$v_time."',";

$v_record="(身份证号,会员姓名,会员密码,联系电话,联系地址,银行名称,银行卡号,注册时间)";
$v_record=$v_record.$v_value;

$host="localhost"; $user="root"; $password="123456";
$dbase_name="bookstore"; $table_name="member";
$conn=mysql_connect($host,$user,$password) or die("连接服务器失败。".mysql_error());
mysql_select_db($dbase_name,$conn) or die("连接数据库失败。".mysql_error());
mysql_query("SET NAMES 'GB2312'");

$v_find="select * from member where 身份证号="."'".$_POST['u_sfzh']."';";
$result=mysql_query($v_find,$conn);
$v_reccount=mysql_num_rows($result);
if($v_reccount>0) die($_POST['u_sfzh']."该会员身份证号已经注册,不得重复注册,注册失败。");

$record="insert into ".$table_name.$v_record;
$result=mysql_query($record) or die("数据表:".$table_name."增加记录失败!".mysql_error());

echo"您输入的信息:<br>";
echo"身份证号:".$_POST['u_sfzh']."<br>";
echo"会员姓名:".$_POST['u_hyxm']."<br>";
echo"会员密码:".$_POST['u_hymm1']."<br>";
echo"会员地址:".$_POST['u_lxdz']."<br>";
echo"联系电话:".$_POST['u_lxdh']."<br>";
echo"银行名称:".$_POST['u_yhmc']."<br>";
echo"银行账号:".$_POST['u_yhzh']."<br>";
echo"注册时间:".$v_time;
echo"<br>"."<br>".$_POST['u_sfzh']."注册成功!"."<br>";

?>
</body>
</html>

求解答。。。为什么总是提示那个问题,看似是简单问题,可是怎么也搞不懂,甚至不知道那个是什么错误。。。
...全文
232 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
祥龙云 2011-07-28
  • 打赏
  • 举报
回复
学下 顺便弄点积分
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 xuzuning 的回复:]
基本格式
insert into tbl_name (fieldslist) values ( valueslist )

你有 $v_record=$v_record.$v_value;
但 $v_value 后面缺少闭弧
另 中文字段名一般需要转义
$v_record="(`身份证号`,`会员姓名`,`会员密码`,`联系电话`,`联系地址`,`银行名称`,`银行卡号`,`注册时间`……
[/Quote]哦!恍然大悟,$v_value最后少了闭弧!是因为我为了偷懒而一直复制了第一句那个,忽视了最后一句是要加闭弧的。。。。多谢!!!
  • 打赏
  • 举报
回复
哎,搞清楚了,原来是insert语句最后的闭弧忘了输入,悲剧啊。。。。[Quote=引用 3 楼 jordan102 的回复:]
他提示sql语句出错了。不可能是那句。你把<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"这行删掉吧。不要也罢。看看提示什么错误。
[/Quote]
  • 打赏
  • 举报
回复
哎,惭愧啊!真的事低级失误,忘了输insert语句中后面的大括号,导致不能运行[Quote=引用 6 楼 lili881217 的回复:]
学下 顺便弄点积分
[/Quote]
xuzuning 2011-07-27
  • 打赏
  • 举报
回复
基本格式
insert into tbl_name (fieldslist) values ( valueslist )

你有 $v_record=$v_record.$v_value;
但 $v_value 后面缺少闭弧
另 中文字段名一般需要转义
$v_record="(`身份证号`,`会员姓名`,`会员密码`,`联系电话`,`联系地址`,`银行名称`,`银行卡号`,`注册时间`)";
一起混吧 2011-07-27
  • 打赏
  • 举报
回复
他提示sql语句出错了。不可能是那句。你把<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"这行删掉吧。不要也罢。看看提示什么错误。
  • 打赏
  • 举报
回复
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"经过其他几行代码的错误测试,貌似就是这一句[Quote=引用 1 楼 jordan102 的回复:]
第一行是什么?贴出来看看。
[/Quote]
一起混吧 2011-07-27
  • 打赏
  • 举报
回复
第一行是什么?贴出来看看。

21,887

社区成员

发帖
与我相关
我的任务
社区描述
从PHP安装配置,PHP入门,PHP基础到PHP应用
社区管理员
  • 基础编程社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧