Это кажется очень простым, но для жизни меня не может понять, почему это не работает. Я пытаюсь просто передать объект в функцию, но я получаю эту ошибку:Пропустить объект как параметр в функции, не работающей
Допустимая фатальная ошибка: Аргумент 3, переданный write_query(), должен быть экземпляром mysqli, null given, вызывается в C: \ xampp \ htdocs \ CSP \ Логин \ login.php в строке 28 и определены в C: \ XAMPP \ HTDOCS \ CSP \ php_scripts \ login_script.php на линии 40
это мои функции определения:
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. (Я знаю, что мне нужно солить пароль и все, я просто пытаюсь заставить это работать в первую очередь). Любые предложения будут оценены
Эта строка, вероятно, возвращает 'false':' if (! Empty ($ _ POST ['userid']) &&! Empty ($ _ POST ['password'])) '. Выполнение 'var_dump ($ _ POST)' внутри 'get_connection' поможет вам отладить проблему. –
Функция conn_database(), вероятно, возвращает NULL. Я не вижу смысла if-statements ($ _POST ...), не имеет смысла вообще. – bestprogrammerintheworld
@bestprogrammerintheworld, похоже, логика OP заключается в том, что он хочет только подключиться к базе данных, когда пользователь отправляет свои учетные данные (login.php). – Prisoner