首 页   · 站长博客 · 用户注册 · 会员登陆  · 会员排行  ·最新主题  ·最近回复  精华区  版权声明  ·论坛管理
  当前登录身份:游客,请先登录。  笔名: 口令: 验证码:   
楼 主  index »  PHP+MYSQL编程 » [原创]哪位高手帮我看一下PHP这个注册程序哪里错  


  作者:yongbbs
  注册时间:2004-09-27
  主题/回复:6/9
  积分:439
  等级:★★☆(五级)
  称号:略有小成

  yongweb@163.com
  115574047
  www.xysb.com/dreamer

 

 发表:2004-09-28 21:42:42 阅读 2277 次 回复 3 次 得分2  |   字号 字色
[原创]哪位高手帮我看一下PHP这个注册程序哪里错
<? $host="127.0.0.1";
$uid="root";
$pwd="";
$user=$_POST["user"];
$pass=$_POST["pass"];
$conn=mysql_connect($host,$uid,$pwd);
mysql_select_db("user");
$result = mysql_query ("insert into wangyong (user,pwd)
     VALUES ('$user', '$pass')");
if(!$result)


{echo"注册失败";}
else

{echo"注册成功";}



?>
 
 1#楼  
 
  回复人:一起PHP
  注册时间:2004-02-27
  主题/回复:247/1521
  积分:4649
  等级:★★★★★☆(十一级)
  称号:论坛圣人

   
 1#楼 发表于2004-09-28 23:44:06  评分:1 

关于这个问题,需要详细了解mysql_query()函数的含义。
PHP4官方说明文档中如下解释这个函数:
-------------------------------------------------
语法: int mysql_query(string query, int [link_identifier]);

返回值: 整数

本函数送出 query 字符串供 MySQL 做相关的处理或者执行。若没有指定 link_identifier 参数,则程序会自动寻找最近打开的 ID。当 query 查询字符串是 UPDATE、INSERT 及 DELETE 时,返回的可能是 true 或者 false;查询的字符串是 SELECT 则返回新的 ID 值。当返回 false 时,并不是执行成功但无返回值,而是查询的字符串有错误。
-------------------------------------------------

根据以上官方说明文档的说明可以看出,这个函数的返回值是一个整数。这个整数是一个连接id。
可见,如果语句执行成功,则应该返回一个整数,而不是true或者false。一个整数用if()判断,返回true,所以,当判断为true时,说明语句一定执行成功了。但是返回false时,可能是语句本身有错误、语句当中提供的参数格式有问题等多种情况。

你上面的代码中,如果你的语句有语法错误,那么if()语句不会被执行,因为
$result=mysql_query(...)
这个语句就会报错,到这个地方就停止执行了。
所以,如果你运行这个程序的时候,没有出现系统错误提示,但是可能你察看数据库发现没有插入成功或者其他现象,那说明你提供的两个变量可能有问题,也就是说$user和$pwd可能有问题,比如包含了非法字符(比如单引号)等原因。如果系统直接报错,则说明语句本身有问题,但是据我观察,这个语句没有明显的语法错误。如果有,那么也说明数据库不存在或者其他简单错误。

总之,这个程序看不出来明显的错误。如果运行结果和你的预期结果不一致,那么可能是其他原因。比如两个变量是否为空你是否判断了?$user和$pwd两个字段在数据表内是否为唯一索引字段?或者说是key字段?如果是这样的话,那么不允许重复记录出现,如果试图插入重复纪录,肯定报错。还有,书写格式,拼写等等有无错误?有没有掺入了中文的字符或者空格而没有看出来?这些都是有可能导致问题的因素。


如果还有问题,请详细描述问题特征。比如报错信息,或者执行结果。不要只帖代码。
 2#楼  
 
  回复人:yongbbs
  注册时间:2004-09-27
  主题/回复:6/9
  积分:439
  等级:★★☆(五级)
  称号:略有小成

   
 2#楼 发表于2004-09-29 01:03:33  评分:× 

谢谢!站长这么细心的分析解答,真的!!!


我太喜欢你了!哈,,,



我运行了,出现了,注册失败

就说明$result没有值吗?那就是FALSE,所以就运行{echo"注册失败";}
这条语句!!!
 3#楼  
 
  回复人:xiaotian
  注册时间:2004-10-01
  主题/回复:1/4
  积分:409
  等级:★★☆(五级)
  称号:略有小成

   
 3#楼 发表于2004-10-01 07:54:22  评分:1 

有可能是你的数据库建的有问题,
建立数据库的时候最要要建主键,
主健最要有auto_increment的属性
你可以重新建设数据库后再试试
  页数1/1首页 « 1 » 末页
  发表回复:您还没有登陆,无法发表回复。请先[登陆]

一起PHP技术联盟 主办:一起PHP 联系方式:站长QQ:4304410 QQ群:8423742 20159565 站长博客 E-mail: nqp@nqp.me 执行时间:0.006sec
SimsmaBBS 2008 (v6.0) Developed by 17php.com,Copyright(C)2003-2010 All rights reserved. 副本授权:一起PHP官方专用版