如何解決此問題?如何解決警告:mysql_num_rows():提供的參數不是有效的MySQL結果資源
警告:mysql_num_rows():提供的參數不是在/home/u940004575/public_html/index.php一個有效的MySQL 結果資源上線114
我已經改變,並與該代碼撥弄太長有人幫
<?
mysql_connect("XXXXX","XXXXX","XXXXX") or die(mysql_error());
mysql_select_db("u940004575_chat");
$myusername = stripslashes($myusername);
$mypassword = stripslashes($mypassword);
$sha1mypassword = sha1($mypassword);
$myusername = mysql_real_escape_string($myusername);
$mypassword = mysql_real_escape_string($mypassword);
$sha1mypassword = mysql_real_escape_string($sha1mypassword);
$sql=mysql_query("SELECT id FROM users WHERE username='$myusername' and password='$sha1mypassword'")or die(mysql_error());
$result=mysql_query($sql);
$count=mysql_num_rows($result);
if($count==1){
session_register("myusername");
session_register("mypassword");
header("location:home.php");
}
else {
echo "Wrong Username or Password";
}
?>
大量過時的功能.... – itachi
看到這樣的代碼真的很痛苦。首先不要使用短打開的標籤,當移動到另一個環境''時,它會爲您節省一些麻煩。其次使用PDO或mysqli與預先準備的語句,這將防止大多數SQL注入攻擊媒介。最後,請不要使用'sha1',它非常快,你應該使用'bcrypt'之類的東西。 – HamZa
在檢查mysql_num_rows()之前,你必須做一個'if($ result)'。無論如何,您正在使用不推薦使用的數據庫函數,並且必須使用諸如'mysqli'或PDO之類的東西。 – MahanGM