2017-07-09 3 views
2

Ich bekomme immer den Fehler PHP Fataler Fehler: Aufruf zu undefinierter Funktion mysqli_stmt_get_result(). Ich benutze PHP Version 5.6 und habe die Erweiterung mysqlind in meinem Hosting-Provider c-Panel aktiviert, aber ich kann nicht herausfinden, warum ich immer noch diesen Fehler bekomme. Ich habe jedes Mal recherchiert und gefunden, dass ich mysqli_stmt_get_result verwenden muss. Kann mir jemand helfen/beibringen, was ich falsch mache? Vielen Dank.PHP Schwerwiegender Fehler: Aufruf zu undefinierter Funktion mysqli_stmt_get_result()

SIGNUP.PHP:

<?php 
    session_start(); 
    include '../dbh.php'; 

    $respond = array(
     'status' => true, 
     'message' => 'There was an error', 
     'redirect', 
     'errors' 
    ); 

    if (isset($_POST['submit'])) { 

     $first = $_POST['first']; 
     $last = $_POST['last']; 
     $email = $_POST['email']; 
     $pwd = $_POST['pwd']; 

     $errorEmpty = false; 
     $errorEmail = false; 


     if (empty($first) || empty($last) || empty($email) || empty($pwd)) { 

      $respond['errors'][] = "Please fill out all fields!"; 
      $respond['errorEmpty'] = true; 

     } elseif (!filter_var($email, FILTER_VALIDATE_EMAIL)) { 
      $respond['errors'][] = "Please enter a valid email address!"; 
      $respond['errorEmail'] = true; 

     } else { 
      $sql = "SELECT email FROM user WHERE email= ? "; 
      $stmt = mysqli_prepare($conn, $sql); 
      mysqli_stmt_bind_param($stmt, 's', $email); 
      mysqli_stmt_execute($stmt); 
      $result = mysqli_stmt_get_result($stmt); //This is where I getting my error 
      $num_rows = mysqli_num_rows($result); 
      if ($num_rows > 0) { 
       $respond['errors'][] = "That email address already exists!"; 
       $respond['errorEmail'] = true; 
      } 

      else { 
       $encryptpwd = password_hash($pwd, PASSWORD_DEFAULT); 
       $sql  = "INSERT INTO user (first, last, email, pwd) VALUES (?,?,?,?)"; 
       $stmt  = mysqli_prepare($conn, $sql); 
       mysqli_stmt_bind_param($stmt, 'ssss', $first, $last, $email, $password_hash); 

       if (mysqli_stmt_execute($stmt)) { 

        $userID = mysqli_insert_id($conn); 
        $status = 1; 
        $sql2 = "INSERT INTO profileImg (email, status) VALUES(?,?)"; 
        $stmt2 = mysqli_prepare($conn, $sql2); 
        mysqli_stmt_bind_param($stmt2, 'si', $email); 
        mysqli_stmt_execute($stmt); 

        $_SESSION['id'] = $userID; 

        $respond['redirect'] = "../profile.php?id=$userID"; 
       } 
      } 
     } 
    } 
    echo json_encode($respond); 
    ?> 

Antwort

1

Haben Sie den mysqlnd Treiber richtig installiert? Per Kommentar im Manual:

If you don't have mysqlnd installed/loaded whatever, you will get an undefined reference when trying to call "mysqli_stmt_get_result()".

Auch gibt es Diskussionen über dieses Thema here und here.

Schließlich ist hier eine forum diskutieren Informationen zur Verwendung des Treibers mit cpanel, die Sie nützlich finden können.

Verwandte Themen