首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >mysql_num_rows()根本不起作用

mysql_num_rows()根本不起作用
EN

Stack Overflow用户
提问于 2011-06-04 07:53:14
回答 5查看 22.5K关注 0票数 0

我有一段PHP代码:

代码语言:javascript
复制
<?php
$username=$_POST['username'];
$password=$_POST['password'];

if($username&&$password){
$connect=mysql_connect("localhost","root","") or die(" Couldnt connect");
mysql_select_db("phplogin") or die ("Can't find database" .mysql_error());  
$query=mysql_query("SELECT * users WHERE username='$username' ");
$numrows=mysql_num_rows($query);
if (!$query) {
die('Invalid query: ' . mysql_error());
}
}
else
die ("Enter username and password!") .mysql_error();
?>

但是,当我试图运行这段代码时,我会得到以下错误:

警告: mysql_num_rows()希望参数1是资源,在第9行的C:\wamp\www\PHP testing\login.php中给出布尔值

您的SQL语法出现了错误;请检查与MySQL服务器版本相对应的手册,以便在第1行的“username=‘alex’附近使用正确的语法。

有人能告诉我我在这里做错了什么吗?

EN

回答 5

Stack Overflow用户

回答已采纳

发布于 2011-06-04 07:55:54

必须指定要从中选择from关键字的表:

代码语言:javascript
复制
$query=mysql_query("SELECT * FROM users WHERE username='$username' ");
$numrows=mysql_num_rows($query);
票数 5
EN

Stack Overflow用户

发布于 2011-06-04 07:58:11

您应该在查询后检查错误,然后系统会告诉您哪里出了问题。

代码语言:javascript
复制
$query = mysql_query("SELECT * users WHERE username='$username' ");

if (mysql_error() {
   die(mysql_error());
}

$numrows = mysql_num_rows($query);

正如@mike注释的那样,select查询缺少from位

代码语言:javascript
复制
"SELECT * FROM users WHERE username='$username' "
票数 5
EN

Stack Overflow用户

发布于 2011-06-04 08:08:29

那么,您的代码容易受到SQL Injection攻击。

代码语言:javascript
复制
$username=$_POST['username'];
$password=$_POST['password'];

instead of above use this code 

$username= mysql_real_escape_string($_POST['username']);
$password=mysql_real_escape_string($_POST['password']);
票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/6235528

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档