Php 致命错误:在中调用未定义的方法mysqli::bind_param()

Php 致命错误:在中调用未定义的方法mysqli::bind_param(),php,mysql,mysqli,Php,Mysql,Mysqli,我在这里找不到毛病你能帮忙吗?这是我的错误 致命错误:在中调用未定义的方法mysqli::bind_param() 我不知道出了什么事 <?php if($_SERVER['REQUEST_METHOD'] == 'POST' && isset($_POST)) { $login = $_POST['login']; $password = $_POST['password'];

我在这里找不到毛病你能帮忙吗?这是我的错误

致命错误:在中调用未定义的方法mysqli::bind_param()

我不知道出了什么事

        <?php
      if($_SERVER['REQUEST_METHOD'] == 'POST' && isset($_POST)) 
       {

          $login    = $_POST['login'];
          $password = $_POST['password'];
          $email    = $_POST['email'];

        if(empty($login) || empty($password) || empty($email))
        {
          die('Comeplete all text.');
        }
        elseif(!filter_var($email, FILTER_VALIDATE_EMAIL)) 
        {
         die('Nie poprawny adres E-mail.');
        }
        else
        {   
         include_once('config.php');

         $mysqli = new mysqli('****', '******', '*****') or die ('Fatal Error: '.mysql_error());

         if($mysqli -> connect_error) 
          die('Error Connection:'.$mysqli -> connect_error.'['.$mysqli -> connect_errno.']');


         $login     = trim(htmlspecialchars($mysqli -> real_escape_string($login)));
         $password  = hash('sha256', trim(htmlspecialchars($mysqli -> real_escape_string($password))));
         $email     = trim(htmlspecialchars($mysqli -> real_escape_string($email)));
         $ip        = $_SERVER['REMOTE_ADDR'];


         $stmt = $mysqli -> prepare("INSERT INTO `user`(`id_user`, `login`,`password`,`email`,`added`,`ip`) VALUES('', ? , ? , ? , now(), ?)");
         $stmt = $mysqli -> bind_param("ssss", $login, $password, $email, $ip);
         if ($stmt) {
            $stmt->execute();

          echo 'Success';
         }
        }
      }


    ?>
 </section> 
</body>
</html>

bind_param
mysqli_stmt
的一种方法,而不是
mysqli
。应该是:

$stmt->bind_param("ssss", $login, $password, $email, $ip);

bind_param
mysqli_stmt
的一种方法,而不是
mysqli
。应该是:

$stmt->bind_param("ssss", $login, $password, $email, $ip);

问题是,您在MySQL上使用的是
bind_param
函数,而不是
$stmt
变量

问题出在这一行:

 $stmt = $mysqli -> prepare("INSERT INTO `user`(`id_user`, `login`,`password`,`email`,`added`,`ip`) VALUES('', ? , ? , ? , now(), ?)");
 $stmt = $mysqli -> bind_param("ssss", $login, $password, $email, $ip);
代替键入:

$stmt = $mysqli->bind_param("ssss", $login, $password, $email, $ip);
您应键入:

$stmt = $stmt->bind_param("ssss", $login, $password, $email, $ip);
由于
bind_param
方法仅在
mysqli_stmt
类上可用。而不是
mysqli


签出文档。

问题是,您在MySQL上使用的是
bind_param
函数,而不是
$stmt
变量

问题出在这一行:

 $stmt = $mysqli -> prepare("INSERT INTO `user`(`id_user`, `login`,`password`,`email`,`added`,`ip`) VALUES('', ? , ? , ? , now(), ?)");
 $stmt = $mysqli -> bind_param("ssss", $login, $password, $email, $ip);
代替键入:

$stmt = $mysqli->bind_param("ssss", $login, $password, $email, $ip);
您应键入:

$stmt = $stmt->bind_param("ssss", $login, $password, $email, $ip);
由于
bind_param
方法仅在
mysqli_stmt
类上可用。而不是
mysqli


签出文档。

我更正了。什么都没有改变

        <?php
      if($_SERVER['REQUEST_METHOD'] == 'POST' && isset($_POST)) 
       {

          $login    = $_POST['login'];
          $password = $_POST['password'];
          $email    = $_POST['email'];

        if(empty($login) || empty($password) || empty($email)) // Sprawdzanie czy pola formularza nie są puste
        {
          die('Wypełnij wszystkie dane.');
        }
        elseif(!filter_var($email, FILTER_VALIDATE_EMAIL)) // Sprawdzanie poprawności adresu Email
        {
         die('Nie poprawny adres E-mail.');
        }
        else
        {   
         include_once('config.php');

         $mysqli = new mysqli('mysql.hostinger.pl', 'u162600159_reg', '******') or die ('Fatal Error: '.mysql_error());

         if($mysqli -> connect_error) 
          die('Problem z połączeniem się z bazą danych:'.$mysqli -> connect_error.'['.$mysqli -> connect_errno.']');


         $login     = trim(htmlspecialchars($mysqli -> real_escape_string($login)));
         $password  = hash('sha256', trim(htmlspecialchars($mysqli -> real_escape_string($password))));
         $email     = trim(htmlspecialchars($mysqli -> real_escape_string($email)));
         $ip        = $_SERVER['REMOTE_ADDR'];


         $stmt = $mysqli -> prepare("INSERT INTO `user`(`id_user`, `login`,`password`,`email`,`added`,`ip`) VALUES('', ? , ? , ? , now(), ?)");
         $stmt->bind_param("ssss", $login, $password, $email, $ip);

          echo 'Zostałeś pomyślnie zarejestrowany';
         }
        }


    ?>
 </section> 
</body>
</html>

我更正了。什么都没有改变

        <?php
      if($_SERVER['REQUEST_METHOD'] == 'POST' && isset($_POST)) 
       {

          $login    = $_POST['login'];
          $password = $_POST['password'];
          $email    = $_POST['email'];

        if(empty($login) || empty($password) || empty($email)) // Sprawdzanie czy pola formularza nie są puste
        {
          die('Wypełnij wszystkie dane.');
        }
        elseif(!filter_var($email, FILTER_VALIDATE_EMAIL)) // Sprawdzanie poprawności adresu Email
        {
         die('Nie poprawny adres E-mail.');
        }
        else
        {   
         include_once('config.php');

         $mysqli = new mysqli('mysql.hostinger.pl', 'u162600159_reg', '******') or die ('Fatal Error: '.mysql_error());

         if($mysqli -> connect_error) 
          die('Problem z połączeniem się z bazą danych:'.$mysqli -> connect_error.'['.$mysqli -> connect_errno.']');


         $login     = trim(htmlspecialchars($mysqli -> real_escape_string($login)));
         $password  = hash('sha256', trim(htmlspecialchars($mysqli -> real_escape_string($password))));
         $email     = trim(htmlspecialchars($mysqli -> real_escape_string($email)));
         $ip        = $_SERVER['REMOTE_ADDR'];


         $stmt = $mysqli -> prepare("INSERT INTO `user`(`id_user`, `login`,`password`,`email`,`added`,`ip`) VALUES('', ? , ? , ? , now(), ?)");
         $stmt->bind_param("ssss", $login, $password, $email, $ip);

          echo 'Zostałeś pomyślnie zarejestrowany';
         }
        }


    ?>
 </section> 
</body>
</html>