Chinaunix首页 | 论坛 | 博客
  • 博客访问: 84626
  • 博文数量: 18
  • 博客积分: 1521
  • 博客等级: 上尉
  • 技术积分: 150
  • 用 户 组: 普通用户
  • 注册时间: 2008-04-22 18:07
文章分类

全部博文(18)

文章存档

2014年(4)

2011年(1)

2010年(4)

2008年(9)

我的朋友

分类:

2010-01-29 14:22:25

if (validate($_POST) == "OK") {
echo "

Thank you for registering!

";

db_connect();

$sql = "select * from users where username='".$_POST["name"]."'";
$result = mysql_query($sql);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
if (!$result) {

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~此处错误,

$sql = "insert into users (username, email, password) values
('".$_POST["name"]."', '".$_POST["email"]."', '".$passwords[0]."')";
$result = mysql_query($sql);

if ($result){
echo "It's entered!";
} else {
echo "There's been a problem: ".mysql_error();
}
} else {

echo "There is already a user with that name:
";
$sqlAll = "select * from users";
$resultsAll = mysql_query($sqlAll);

}


} else {
echo "

There was a problem with your registration:

";

作者以为$result返回FALSE,作者对
mysql_query的返回值,理解错误。返回的是个标识符。所以看做TRUE。
mysql_query() 仅对
SELECT,SHOW,EXPLAIN 或 DESCRIBE
语句返回一个资源标识符,如果查询执行不正确则返回
FALSE。对于其它类型的 SQL
语句,mysql_query()
在执行成功时返回 TRUE,出错时返回 FALSE。非
FALSE 的返回值意味着查询是合法的并能够被服务器执行。这并不说明任何有关影响到的或返回的行数。
很有可能一条查询执行成功了但并未影响到或并未返回任何行。
if (!$result)改成
if (mysql_num_rows($result) == 0)就可以了。
阅读(905) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~