文章详情

  • 游戏榜单
  • 软件榜单
关闭导航
热搜榜
热门下载
热门标签
php爱好者> php文档>php网上错误示例

php网上错误示例

时间:2010-01-29  来源:lengyuzlg

if (validate($_POST) == "OK") {
echo "<p>Thank you for registering!</p>";

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: <br />";
$sqlAll = "select * from users";
$resultsAll = mysql_query($sqlAll);

}


} else {
echo "<p>There was a problem with your registration:</p>";

作者以为$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)就可以了。
相关阅读 更多 +
排行榜 更多 +
辰域智控app

辰域智控app

系统工具 下载
网医联盟app

网医联盟app

运动健身 下载
汇丰汇选App

汇丰汇选App

金融理财 下载