Tôi đang gặp phải lỗi loại đối số mysqli_query()#1

lập trình


Tôi đang phải đối mặt với vấn đề dưới đây.

Trích dẫn:

Lỗi nghiêm trọng: Uncaught TypeError: mysqli_query(): Đối số #1 ($mysql) phải thuộc loại mysqli, bool được đưa ra trong C:\location:18 Dấu vết ngăn xếp: #0 C:\location(18): mysqli_query(true, ‘ select*from `us…’) #1 {main} được đưa vào C:\location trên dòng 18

Hãy sắp xếp nó ra.
Dưới đây là mã.

PHP
<?php

$dbhost="localhost"; 

$dbuser = "root"; 

$dbpass = "password"; 



$mysql =  mysqli_connect($dbhost, $dbuser, $dbpass, 'userlogin');

if($mysql = true){
 echo "Connection Succesful!";
} else{
    die(mysqli_error);
}
if(mysqli_query($mysql, 'select*from `user info`')){
echo "<br> ERROR SOLVED FOREVER!";
}else{
echo "<h1><br><br> THIS IS AN ERROR!".mysqli_error'</h1>'
}
?>

LƯU Ý: Sự cố chỉ xảy ra ở dòng 18. Nó đã hoạt động thành công khi kiểm tra kết nối.
Cảm ơn.

Những gì tôi đã thử:

Thay thế $mysql bằng mysqli_connect($dbhost, $dbuser, $dbpass, ‘userlogin’); thay vào đó ở dòng 18 bên trong hàm mysqli_query(). . Nó đã làm việc.

Giải pháp 1

Nếu nghi ngờ, hãy đọc hướng dẫn: PHP: mysqli_connect – Hướng dẫn sử dụng[^] Nó nói rằng:

Trích dẫn:

Nếu chế độ ngoại lệ mysqli không được bật và kết nối không thành công thì mysqli_connect() trả về false thay vì một đối tượng.

Điều đó không giống như “nếu thành công, nó sẽ quay trở lại true“.
Nếu thành công, nó sẽ trả về một đối tượng kết nối mà bạn có thể sử dụng, không phải giá trị boolean.

Thay đổi bài kiểm tra của bạn để kiểm tra false thay vì true

Giải pháp 2

if(isset($_SESSION[‘check_login’]))
{
header(‘location:dashboard.php’);

}

コメント

タイトルとURLをコピーしました