这似乎非常容易,但对于我的生活来说,我无法弄清楚为什么这不起作用。我试图简单地将对象传递给函数,但出现此错误:
可捕获的致命错误:传递给 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() 的定义中进行了类型提示,但根据我从错误中了解到的情况,我的第三个参数不被视为 mysqli 的实例。(我知道我应该对密码进行加盐处理,我只是想让它首先工作)。任何建议,将不胜感激