PHP,Mysql致命错误:调用成员函数bind_param()

时间:2015-12-31 18:11:29

标签: php mysqli

我遇到了问题。这是我的PHP脚本,当我运行此代码时,它给了我这个错误,

  

致命错误:在第30行的C:\ xampp \ htdocs \ osadnicy \ zaloguj.php中调用boolean上的成员函数bind_param()。

我该如何解决?请帮忙。

<?php

    session_start();

    if ((!isset($_POST['login'])) || (!isset($_POST['haslo'])))
    {
        header('Location: index.php');
        exit();
    }

    require_once "connect.php";

    $polaczenie = @new mysqli($host, $db_user, $db_password, $db_name);

    if ($polaczenie->connect_errno!=0)
    {
        echo "Error: ".$polaczenie->connect_errno;
    }
    else
    {
        $login = $_POST['login'];
        $haslo = $_POST['haslo'];

        $login = htmlentities($login, ENT_QUOTES, "UTF-8");


        $zapytanie = $polaczenie->prepare("SELECT * FROM uzytkownicy WHERE user = ? AND haslo = ?");
        $zapytanie->bind_param('ss', $login, $haslo);

        if ($rezultat = $zapytanie->execute())
        {
            $ilu_userow = $rezultat->num_rows;
            if($ilu_userow>0)
            {
                $wiersz = $rezultat->fetch_assoc();

                if (password_verify)
                {
                    $_SESSION['zalogowany'] = true;
                    $_SESSION['id'] = $wiersz['id'];
                    $_SESSION['user'] = $wiersz['user'];
                    $_SESSION['drewno'] = $wiersz['drewno'];
                    $_SESSION['kamien'] = $wiersz['kamien'];
                    $_SESSION['zboze'] = $wiersz['zboze'];
                    $_SESSION['email'] = $wiersz['email'];
                    $_SESSION['dnipremium'] = $wiersz['dnipremium'];

                    unset($_SESSION['blad']);
                    $rezultat->free_result();
                    header('Location: gra.php');
                }
                else
                {
                    $_SESSION['blad'] = '<span style="color:red">Nieprawidłowy login lub hasło!</span>';
                    header('Location: index.php');
                }

            } else {

                $_SESSION['blad'] = '<span style="color:red">Nieprawidłowy login lub hasło!</span>';
                header('Location: index.php');

            }

        }

        $polaczenie->close();
    }

?>

1 个答案:

答案 0 :(得分:0)

在代码段中更正以下部分。

<?php
/* Create a prepared statement */
$zapytanie = $polaczenie->stmt_init();

if ($zapytanie->prepare("SELECT * FROM uzytkownicy WHERE user = ? AND haslo = ?"))
    {
    $zapytanie->bind_param('ss', $login, $haslo);
    if ($rezultat = $zapytanie->execute())
        {

        // Your Code

        }
    }

参考网址:
http://php.net/manual/en/mysqli-stmt.prepare.php