Php mysql代码与mysqli代码

Php mysql代码与mysqli代码,php,mysql,sql,mysqli,Php,Mysql,Sql,Mysqli,我尝试过将一段代码从mysql转换为mysqli,下面的代码是mysql代码,这很好,可以让用户正确登录 <?php if($_POST){ $username=mysql_real_escape_string($_POST['username']); //Protects against SQL Injection $password=mysql_real_escape_string($_POST['password']); // Protects against SQL Inje

我尝试过将一段代码从mysql转换为mysqli,下面的代码是mysql代码,这很好,可以让用户正确登录

<?php
 if($_POST){
 $username=mysql_real_escape_string($_POST['username']); //Protects against SQL Injection
 $password=mysql_real_escape_string($_POST['password']); // Protects against SQL Injection

 $sql = mysql_query("SELECT * FROM usertable WHERE userID ='".$username."' AND userPass ='".md5($password)."'") or die(mysql_error());
 $res=mysql_num_rows($sql);

 if($res>0){
 $rs_login=mysql_fetch_assoc($sql);
 $uid=$rs_login['userID'];
 $_SESSION['sess_uid']=$uid;
 header("Location: index.php");
 die();

 } 

 else{
 echo '<div class="error">Incorrect Username or Password</div>';
 echo '<br/>';
 }
 }

 ?>

下面的代码不起作用,我遇到了错误“警告:mysqli_num_rows()正好需要1个参数,2个给定”。我知道这个查询有问题,但是我很难弄清楚

<?php
  $mysqli = mysqli_connect("localhost", "root", "password", "dbname") or die ('Could not connect to database!');

  if(isset( $_POST['username']) && isset($_POST['password'])){

  $username = mysqli_real_escape_string($mysqli, $_POST['username']);
  $password = mysqli_real_escape_string($mysqli, md5($_POST['password']));

  $sqllogin = "SELECT * FROM usertable WHERE userID = '".$username."'  AND userPass = '".$password."' LIMIT 1" ;

  $result = mysqli_query($mysqli,$sqllogin);
  $count = mysqli_num_rows($mysqli,$result);   

  if (!$resuult) {
     die(mysqli_error($mysqli));
        }           
     if ($count > 0) {
 $data = mysqli_fetch_assoc($count);
 return $data;
 $uid=$rs_login['userID'];
 $_SESSION['sess_uid']=$uid;
 header('Location: index.php');

} else {
  echo '<div class="error">Incorrect Username or Password</div>';
  echo '<br/>';
 }

}
?>    
否,查询没有问题,请阅读错误说明:

警告:mysqli_num_rows()只需要1个参数,给定2个

谷歌搜索mysqli\u num\u行
>

它需要一个参数;a
mysqli\u结果

因此,使用该参数调用它,或者使用文档中的一个示例:


mysqli\u num\u行($result)

MD5不安全。您需要一个迭代的salt散列,比如bcrypt。读取错误。您还编写了
$result
将变量更改为$result,没有任何更改我将研究如何使用bcrypt,谢谢!您应该已经阅读了我评论的第一部分:“阅读错误”。免责声明:我不知道PHPThanks,我更改了它,现在它正在按照预期重定向页面。