-1

これは非常に簡単に思えますが、私の人生では、これが機能しない理由を理解できません。オブジェクトを関数に単純に渡そうとしていますが、次のエラーが発生します。

キャッチ可能な致命的なエラー: write_query() に渡される引数 3 は mysqli のインスタンスである必要があり、null が指定され、28 行目の C:\xampp\htdocs\CSP\login\login.php で呼び出され、C:\xampp\htdocs\ で定義されます。 40 行目の CSP\php_scripts\login_script.php

これらは私の関数定義です:

function conn_database()
    {
        if (!empty($_POST['userid']) && !empty($_POST['password']))
        {
            $conn = new mysqli('localhost', 'root', '', 'csp');

            if (mysqli_connect_errno()) 
            {
                echo 'Connection to database failed:'.mysqli_connect_error();
                exit();
            }
            return $conn;
        }

    }


function write_query($userid, $password, mysqli $conn)
    {
        $query = 'select * from authorized_users '
        ."where userid= '$userid'"
        ."and password_id='$password'";
        $result = $conn->query($query);
        return $result;
    }

私はそれらを次のように呼んでいます:

$conn = conn_database();
$result = write_query($userid, $password, $conn);

write_query() の定義で型ヒントを使用していますが、エラーから理解したところでは、3 番目の引数は mysqli のインスタンスとは見なされません。(パスワードをソルトする必要があることは承知していますが、最初にこれを機能させようとしているだけです)。任意の提案をいただければ幸いです

4

1 に答える 1