1#楼 |
|
|
回复人:一起PHP |
注册时间:2004-02-27 |
主题/回复:247/1521 |
积分:4649 |
等级:★★★★★☆(十一级) |
称号:论坛圣人 |
|
|
|
1#楼 发表于2004-09-28 17:53:41
评分:1
|
|
如果你使用了mdb数据库,那么如果要改写成PHP代码,则需要设置ODBC数据源,较为复杂。这里以mysql数据库为例给出改写后的代码:
<?php
$user=$_POST["user"];
$pwd=$_POST["pwd"];
$id=mysql_connect("localhost","username","password");
mysql_select_db("DBname",$id);
sql="select * from 用户表 where 用户='$user' and 密码='$pwd'";
$result=mysql_query(sql,$id);
if(mysql_num_rows($result)==0){
echo "这个表里面没有你的数据";
}else{
echo "你好,已经通过验证了!";
}
?>
以上是完整的mysql数据库情况下的代码。如果你使用mdb数据库,那么需要首先在odbc数据源中设置好数据源。然后在代码中把 mysql_...命令修改成相应的 odbc命令即可。
|
|
2#楼 |
|
|
回复人:yongbbs |
注册时间:2004-09-27 |
主题/回复:6/9 |
积分:439 |
等级:★★☆(五级) |
称号:略有小成 |
|
|
|
2#楼 发表于2004-09-28 21:52:35
评分:×
|
|
多谢站找帮忙了,真的,如果多几个这样的人,那么我想中国的IT技术一定会进步的,
我还有一个问题,就是注册用户的问题
你帮我看一下哪里有误好吗?
<? $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"注册成功";}
|
|
3#楼 |
|
|
回复人:一起PHP |
注册时间:2004-02-27 |
主题/回复:247/1521 |
积分:4649 |
等级:★★★★★☆(十一级) |
称号:论坛圣人 |
|
|
|
3#楼 发表于2004-09-28 23:44:58
评分:♂
|
|
关于这个问题,需要详细了解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字段?如果是这样的话,那么不允许重复记录出现,如果试图插入重复纪录,肯定报错。还有,书写格式,拼写等等有无错误?有没有掺入了中文的字符或者空格而没有看出来?这些都是有可能导致问题的因素。
如果还有问题,请详细描述问题特征。比如报错信息,或者执行结果。不要只帖代码。 |
|
4#楼 |
|
|
回复人:yongbbs |
注册时间:2004-09-27 |
主题/回复:6/9 |
积分:439 |
等级:★★☆(五级) |
称号:略有小成 |
|
|
|
4#楼 发表于2004-10-01 20:00:59
评分:×
|
|
呵,,搞定了!好象是我在建表结构时把密码设为INT型了,而我注册时输入的是CHAR型,所以一直显示注册失败! |
|
5#楼 |
|
|
回复人:yongbbs |
注册时间:2004-09-27 |
主题/回复:6/9 |
积分:439 |
等级:★★☆(五级) |
称号:略有小成 |
|
|
|
5#楼 发表于2004-10-01 20:01:00
评分:×
|
|
呵,,搞定了!好象是我在建表结构时把密码设为INT型了,而我注册时输入的是CHAR型,所以一直显示注册失败! |
|