0

Something strange happen, I pass insert data from angular controller to php file. Next, php file is inserting data into MySQL database. All the data is successfully inserted. However once I click on button two record is inserted into MySQL database. One will the empty data is inserted and second is the data I entered from UI. The following is my code:

Javascript controller Code:

.controller('registerController',['$scope', '$stateParams', '$state', '$http', function($scope, $stateParams, $state, $http){
    var userInformation = [];
    $scope.registration = {};
    console.log($stateParams.all);

    $scope.doRegister = function () {
        if( $scope.registration.pasword !== $scope.registration.confirmpassword){
                alert("Password not match");
        }
    $http({
        url: "http://localhost/php/chat.php",
        method: "POST",
        data: {
            'username': $scope.registration.username,
            'email': $scope.registration.emailaddress,
            'password': $scope.registration.pasword
        }
    }).success(function(response) {
        console.log(response);
    }).error(function(response) {
        console.log(response);
    });
        $state.go('login', {userInformation : userInformation});
    };
    $scope.goBack = function() {
        $state.go('login');
  }
}])

PHP Code

<?php
    header("Access-Control-Allow-Origin: *");
    header("Access-Control-Allow-Credentials: true");
    header("Access-Control-Allow-Methods: POST, GET, OPTIONS");
    header("Access-Control-Allow-Headers: Content-Type, Authorization, X-Requested-With");

    $postdata = file_get_contents("php://input");
    $request = json_decode($postdata);
    $user = $request->username;
    $email = $request->email;
    $pass = $request->password;

    $servername = "localhost";
    $username = "jack";
    $password = "1234";
    $dbname = "chat";
    $conn = new mysqli($servername, $username, $password, $dbname);

    if ($conn->connect_error) {
        die("Connection failed: " . $conn->connect_error);
    }

    $sql = "INSERT INTO use_directory VALUES ('', '$user', '$email', '$pass');" ;
    $retval = $conn->multi_query($sql);

    if( $retval === TRUE) {
        echo "Add successfully\n";
    }else { 
        die('Could not edit data');
    }
?>

Here is my database outcome

enter image description here

4
  • y using multi_query? Commented Sep 26, 2016 at 6:55
  • @dass this code I copy from internet. Enable insert of data into database Commented Sep 26, 2016 at 6:57
  • change $conn->multi_query($sql) to $conn->query($sql) Commented Sep 26, 2016 at 7:02
  • @dass It still the same insert two record with 1 record data is empty and another record data I entered. I think is not the problem of PHP. Commented Sep 26, 2016 at 7:08

1 Answer 1

1
$sql = "INSERT INTO use_directory (user,email,pass) VALUES ( '$user','$email', '$pass')" ;
if(mysqli_query($conn, $sql)){
   echo "Add successfully\n";
}else{
   die('Could not edit data');
}

Have you tried like this? Hope it helps :)

Sign up to request clarification or add additional context in comments.

Comments

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.