2017-05-06 3 views
1

Ich nehme an "Boolean", dass es als "false" herauskommt ... Kann mir jemand erklären, was hier falsch sein könnte? Mein Code kann insgesamt fehlerhaft sein, aber ich hätte gerne eine konstruktive Kritik.Brandneu in Codierung: Schwerwiegender Fehler: Aufruf einer Memberfunktion execute() on boolean

<?php 

if ($_SERVER['REQUEST_METHOD'] = "POST") { 

include("mytableconn.php"); 

$firstName = mysqli_real_escape_string($conn, trim($_POST['firstn'])); 
$lastName = mysqli_real_escape_string($conn, trim($_POST['lastn'])); 
$email = mysqli_real_escape_string($conn, trim($_POST['uemail'])); 
$password = mysqli_real_escape_string($conn, trim($_POST  ['userpasscode'])); 
$cryption = "$2y$10$"; 
$chars = "thisisseriouslyfucked1"; 
$crypchar = $cryption . $chars; 
$crypass = crypt($password, $crypchar); 

$user = $conn->prepare(" 
INSERT INTO mytable(first_name, last_name, e_mail, pass_word) 
VALUES(?, ?, ?, ?) 
"); 

$user = $user->bind_param("ssss", $firstName, $lastName, $email, $crypass); 

$user->execute(); 

$user->close(); 
$conn->close(); 


}else { 

echo("Sorry, an unexpected error occurred"); 

} 





?> 
+1

Neuzuweisen Ihre '$ user' hier' $ user = $ user-> bind_param (... 'kann es sein. Versuchen Sie' $ user Entfernen = ', so dass nur' $ user- > bind_param ("ssss", $ firstName, $ lastName, $ email, $ crypass); ' – Rasclatt

+0

@Rasclatt Das hat funktioniert! Danke! – Hayden

Antwort

-1

Wenn Sie prepare die SQL Sie es als eine Variable zuweisen - Sie sollten dann diese Variable testen, bevor dass der SQL gültig zu überprüfen fortfahren.

mysqli_prepare() returns a statement object or FALSE if an error occurred

<?php 

    if ($_SERVER['REQUEST_METHOD'] = "POST") { 

     include("mytableconn.php"); 

     $firstName = mysqli_real_escape_string($conn, trim($_POST['firstn'])); 
     $lastName = mysqli_real_escape_string($conn, trim($_POST['lastn'])); 
     $email = mysqli_real_escape_string($conn, trim($_POST['uemail'])); 
     $password = mysqli_real_escape_string($conn, trim($_POST['userpasscode'])); 

     $cryption = "$2y$10$"; 
     $chars = "thisisseriouslyfucked1"; 
     $crypchar = $cryption . $chars; 
     $crypass = crypt($password, $crypchar); 



     $stmt = $conn->prepare("insert into `mytable` (`first_name`, `last_name`, `e_mail`, `pass_word`) values (?, ?, ?, ?)"); 

     if($stmt){ 
      $stmt->bind_param("ssss", $firstName, $lastName, $email, $crypass); 
      $stmt->execute(); 
      $stmt->close(); 
     } 
     $conn->close(); 


    }else { 
     echo("Sorry, an unexpected error occurred"); 
    } 
?> 
+0

Danke! Obwohl, jetzt ist dies behoben, haben Sie einen Rat oder Feedback können Sie teilen, um mir zu helfen, meine Codierungsfähigkeiten besser zu verbessern? – Hayden

Verwandte Themen