execute() virker ikke

Her kan du få hjælp og stille spørgsmål til PHP!
Besvar
JvdB100
Begynder
Indlæg:18
Tilmeldt:29. mar 2016, 15:51
execute() virker ikke

Indlæg af JvdB100 » 26. jul 2017, 10:19

Hej,
Jeg har efterhånden lagt et par spørgsmål op, hvor jeg er igang med at lave login til en app. Men nu er min windows holdt op med at fungere, og jeg har glemt at lave en backup. Jeg er gået igang med appen igen, men jeg får hele tiden en fejl med, at min SQL query ikke vil execute() (Some error occured. Please try again!). Nogle der kan hjælpe mig?
På forhånd tak!
Mvh Joep

DBConnect:

Kode: Vælg alt

<?php

	class DBConnect{
     
      private $con;
      
      function __construct(){
       
        
        
      }
      
      public function connect(){
        
        $host = "localhost";
      $dbname = "users";
      $user = "root";
      $pass = "";
        
        try {
        
        $this->con = new PDO("mysql:host=$host;dbname=$dbname", $user, $pass);
          
        return $this->con;
          
        } catch (PDOException $ex) {
          
          echo "Failed to connect to database: " . $ex;
          
        }
        
      }
      
    }

?>
DBOperations:

Kode: Vælg alt

<?php

require_once dirname(__FILE__).'/DBConnect.php';

	class DBOperations{
      
      
      
     private $con;
      
     function __construct(){
       
      
       
       $db = new DBConnect();
       
       $this->con = $db->connect();
       
     }
      
      function createUser($name, $pass, $email){
        
        $password = md5($pass);
        $verify = 0;
        $rank = "Member";
        
        $stmt = $this->con->prepare("INSERT INTO roedel (id, name, password, email, rank, extrarank, verify) VALUES (NULL, ?, ?, ?, ?, NULL, ?)");
        $stmt->bindParam(1, $name);
        $stmt->bindParam(2, $password);
        $stmt->bindParam(3, $email);
        $stmt->bindParam(4, $rank);
        $stmt->bindParam(5, $verify);
        
        return $stmt->execute();
        
        
        
        
        
      }
      
    }

?>
registerUser:

Kode: Vælg alt

<?php

	require_once '../Includes/DBOperations.php';
	$response = array();

	if ($_SERVER['REQUEST_METHOD'] == 'POST'){
      
      if (!empty($_POST['name']) && !empty($_POST['email']) && !empty($_POST['password'])){
        
        $db = new DBOperations();
        
        if ($db->createUser($_POST['name'], $_POST['password'], $_POST['email'])){
          
          $response['error'] = false;
          $response['message'] = "User was succesfully registered!";
          
        } else { // Dette er, hvad der sker
          
          $response['error'] = true;
          $response['message'] = "Some error occured. Please try again!";
          
        }
        
      } else {
        
       $response['error'] = true;
       $response['message'] = "Required fields are missing. Try again!";
        
      }
      
    } else {
      
      $response['error'] = true;
      $response['message'] = "Invalid request";
      
    }

	echo json_encode($response);
?>

jepperask
Geni
Geni
Indlæg:378
Tilmeldt:4. nov 2012, 17:57

Re: execute() virker ikke

Indlæg af jepperask » 31. jul 2017, 12:26

PDO::execute() returnerer false, og jeg tror du kan få fat i den konkrete fejl-meddelelse via den her funktion:
http://php.net/manual/en/pdo.errorinfo.php

Jeg vil anbefale dig at køre det med en debugger.

Besvar