2017-12-06 7 views
0

動的生成フィールドを持つフォームで作業しています。私の問題は、これらのフィールドからデータを挿入できないことです。私はこのスレッドを試しましたHow to insert json array into mysql databaseしかし、私のために働いていない。JSONデータをAngularjsのデータベースに挿入します。

PHPに転送されたときにデータを取り込もうとしましたが、運が得られませんでした。

DB接続

<?php 
class DbConfig 
{ 
    private $_host = 'localhost'; 
    private $_username = 'root'; 
    private $_password = ''; 
    private $_database = 'machines'; 

    protected $connection; 

    public function __construct() 
    { 
     if (!isset($this->connection)) { 

      $this->connection = new mysqli($this->_host, $this->_username, $this->_password, $this->_database); 

      if (!$this->connection) { 
       echo 'Cannot connect to database server'; 
       exit; 
      }   
     } 

     return $this->connection; 
    } 
} 
?> 

JSONデータ

$scope.columns = [ 
{"id":1,"brand":"robotworx","tonnage":"200","tableSize":"20x50","pressType":"Kiss Cutting"}, 
{"id":2,"brand":"fanuc","tonnage":"100","tableSize":"30x60","pressType":"Swing Arm"} 

]; 

コントローラ

$scope.register=function(){ 
    $http.post("http://localhost/clickermag/controller/register.php", { 
    'company':$scope.company, 
    'email':$scope.email, 
    'phone':$scope.phone, 
    'position':$scope.position, 
    'firstName':$scope.firstName, 
    'lastName':$scope.lastName, 
    'presses':$scope.columns 
    }) 

    .then(function(response){ 
        console.log("Data Inserted Successfully"); 
       },function(error){ 
        alert("Sorry! Data Couldn't be inserted!"); 
        console.error(error); 

       }); 
     } 

PHPファイル

<?php 
$data = json_decode(file_get_contents("php://input")); 

//including the database connection file 
include_once("../classes/Crud.php"); 

$crud = new Crud(); 


$company = $data->company; 
$email = $data->email; 
$phone = $data->phone; 
$position = $data->position; 
$firstName = $data->firstName; 
$lastName = $data->lastName; 
$ownedPress = $data->presses; 

     //insert data to database 
$result = $crud->execute("INSERT INTO users(company, email, phone, position, first_name, last_name) VALUES('$company','$email','$phone','$password','$position','$firstName','$lastName')"); 

$last_id = $crud->user_id; 

foreach($data as $item) { 
     $pressesQuery = $crud->execute("INSERT INTO owned_presses(user_id, brand, tonnage, table_size, press_type) VALUES ('$last_id','$item[brand]','$item[tonnage]','$item[tableSize]','$item[pressType]')"); 
    } 

?> 

私は2番目のクエリに生成されたフィールドからのデータを配置する必要があります。

答えて

1

最初のものは、SQL Injectionです。今

foreach($data as $item) { 

なぜあなたは$ownedPressをループしてはならない、$dataをループしていますか?

そして、私はCrud.phpがどのように実装されるかわからないんだけど、私はそれが可能だろうと仮定したい:

$last_id = $result->user_id; 
+0

の$ last_idは罰金先生取り組んます。..先生ありがとう.. –

関連する問題