2016-09-26 11 views
0

何か変わったことが起こりました。角度コントローラからPHPファイルにデータを渡します。次に、phpファイルはMySQLデータベースにデータを挿入しています。すべてのデータが正常に挿入されます。しかし、私はボタンを2回クリックすると、レコードがMySQLデータベースに挿入されます。 1つは空のデータが挿入され、2番目はUIから入力したデータです。以下は、私のコードです:PHPファイルへの角型パスデータとPHPデータベースへの挿入

Javascriptのコントローラコード:

.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コード

<?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'); 
    } 
?> 

ここでは私のデータベースの結果

enter image description here

+0

y 'multi_query'を使用していますか? – FullStack

+0

@dassこのコード私はインターネットからコピーします。データベースへのデータの挿入を有効にする –

+0

'$ conn-> multi_query($ sql)'を '$ conn-> query($ sql)'に変更します – FullStack

答えて

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'); 
} 

Hでありますあなたはこれのようにしてみましたか?希望を助ける:)

+0

それは動作します。ありがとう –