【解決方法】mysqli_query() 引数#1 の型エラーに直面しています


以下の問題に直面しています。

引用:

致命的エラー: キャッチされません TypeError: mysqli_query(): 引数 #1 ($mysql) は、C:\location:18 で指定された mysqli、bool 型でなければなりません スタック トレース: #0 C:\location(18): mysqli_query(true, ‘ select*from `us…’) #1 {main} が 18 行目の C:\location にスローされます

整理してください。
以下はコードです。

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>'
}
?>

注: 問題は 18 行目のみです。接続テストでは正常に動作しました。
ありがとう。

私が試したこと:

$mysql を mysqli_connect($dbhost, $dbuser, $dbpass, ‘userlogin’); に置き換えます。 代わりに、mysqli_query() 関数内の 18 行目にあります。 。 出来た。

解決策 1

疑問がある場合は、マニュアルをお読みください。 PHP:mysqli_connect – マニュアル[^] こう書かれています。

引用:

mysqli 例外モードが有効になっておらず、接続が失敗した場合、mysqli_connect() はオブジェクトの代わりに false を返します。

それは「成功したら戻る」とは違います。 true」。
成功すると、ブール値ではなく、使用できる接続オブジェクトが返されます。

チェックするテストを変更します。 false の代わりに true

解決策 2

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

}

コメント

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