我有一段PHP代码:
<?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’附近使用正确的语法。
有人能告诉我我在这里做错了什么吗?
发布于 2011-06-04 07:55:54
必须指定要从中选择from关键字的表:
$query=mysql_query("SELECT * FROM users WHERE username='$username' ");
$numrows=mysql_num_rows($query);发布于 2011-06-04 07:58:11
您应该在查询后检查错误,然后系统会告诉您哪里出了问题。
$query = mysql_query("SELECT * users WHERE username='$username' ");
if (mysql_error() {
die(mysql_error());
}
$numrows = mysql_num_rows($query);正如@mike注释的那样,select查询缺少from位
"SELECT * FROM users WHERE username='$username' "发布于 2011-06-04 08:08:29
那么,您的代码容易受到SQL Injection攻击。
$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']);https://stackoverflow.com/questions/6235528
复制相似问题