これは非常に簡単に思えますが、私の人生では、これが機能しない理由を理解できません。オブジェクトを関数に単純に渡そうとしていますが、次のエラーが発生します。
キャッチ可能な致命的なエラー: 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 のインスタンスとは見なされません。(パスワードをソルトする必要があることは承知していますが、最初にこれを機能させようとしているだけです)。任意の提案をいただければ幸いです