如何从MYSQL切换到MYSQLI?因为我尝试过但返回的是null值,所以谢谢!
MYSQL代码:
if(isset($_POST["username"])&& isset($_POST["password"])){
$manager = preg_replace('#[^A-Za-z0-9]#i','',$_POST["username"]);
$password = preg_replace('#[^A-Za-z0-9]#i','',$_POST["password"]);
include "includes/connect_db.php";
$sql = mysql_query("SELECT id FROM admin WHERE username='$manager'
AND password=$password' LIMIT 1");
$existCount = mysql_num_rows($sql);//count the row nums
if($existCount == 1){//evaluate the count
while($row=mysql_fetch_array($sql)){
$id=$row["id"];
}
$_SESSION["id"] = $id;
$_SESSION["manager"]=$manager;
$_SESSION["password"]=$password;
header("location:index.php");
exit();
}else{
echo 'That information is incorrect, try again <a href="index.php">Click Here</a>';
exit();
}
这是我之前尝试过的,但向我显示一条消息mysqli_num_rows具有布尔结果.
MYSQLI代码:
if(isset($_POST["username"])&& isset($_POST["password"])){
$manager = preg_replace('#[^A-Za-z0-9]#i','',$_POST["username"]);
$password = preg_replace('#[^A-Za-z0-9]#i','',$_POST["password"]);
include("includes/insert_db.php"); // i change the database connection
$sql = "SELECT * FROM admin WHERE username='$manager'
AND password=$password'";
$result = mysqli_query($con, $sql);
$existCount = mysql_num_rows($result);//count the row nums
if($existCount == 1){//evaluate the count
while($row=mysqli_fetch_array($result)){
$id=$row["id"];
}
$_SESSION["id"] = $id;
$_SESSION["manager"]=$manager;
$_SESSION["password"]=$password;
header("location:index.php");
exit();
}else{
echo 'That information is incorrect, try again <a href="index.php">Click Here</a>';
exit();
}
}
解决方法:
尝试更改此:
$sql = mysql_query("SELECT id FROM admin WHERE username='$manager'
AND password=$password' LIMIT 1");
对此:
$sql = "SELECT id FROM admin WHERE username='$manager' AND password='$password' LIMIT 1";
$result = mysqli_query($conn, $sql);
或这个:
$sql = "SELECT id FROM admin WHERE username='$manager' AND password='$password' LIMIT 1";
$result = $conn->query($sql);
($conn是连接变量,如果不同,则将其更改.)
希望这会有所帮助.
还将mysql_fetch_array($sql)更改为mysqli_fetch_array($sql)