如何使用AngularJS和php后端插入表中

时间:2017-06-02 10:32:16

标签: php mysql sql angularjs

我有一个视图,其中客户端的数据显示在表格中,客户端帐户显示,ng-repeat显示的是数组,并且对于属于每个客户端的每一行,我都有一个'添加'按钮,此按钮必须将每个客户端添加到另一个表'客户端',当我尝试此代码时,它会生成此错误:undefined property "code",错误在哪里!

register.html

<div class="padding" ng-controller="RegisterCtrl" ng-init="loadClient1()">

<a class="button button-info"  href="#/ajoutClient" style="background-color:#6EB4DC;float:right">Ajouter un client</a>
<table>
<tr>
          <th>Code.Client</th>
          <th>Nom</th>
          <th>Prenom</th>
          <td>Ajouter</td>
</tr>

<tr ng-repeat="x in names">
          <td ng-model="code">{{x.CodeClient}} </a> </td>
          <td ng-model="nom">{{x.NomClient}}       </td>
          <td ng-model="prenom">{{x.PrenomClient}}</td> >
          <td><a class="button button-info" ng-click="insertClient()" >Ajouter</a> </td>        
</tr>
</table>

app.js

$scope.insertClient = function(){ 
      if(confirm("Êtes-vous sûr?"))  
           {   
           $http.post(  
                "http://localhost/deb/insertClient.php",  
                {  
                'code'   :$scope.code, 
                'nom'    :$scope.nom,
                'prenom' :$scope.prenom,
                }  

           ).success(function(data){  

           });  
         }
         else
         {
          return false;
         }
      }

insertClient.php

 <?php  

 $connect = mysqli_connect("localhost", "root", "", "test");  

 $data = json_decode(file_get_contents("php://input"));  
 if(count($data) > 0)  
 {    $CodeClient=mysqli_real_escape_string($connect,$data->code);
      $NomClient = mysqli_real_escape_string($connect, $data->nom); 
      $PrenomClient = mysqli_real_escape_string($connect, $data->prenom); 

      $query = "INSERT INTO client (NomClient,PrenomClient) VALUES 
      ('$NomClient','$PrenomClient') WHERE   CodeClient='$CodeClient'"; 

      if(mysqli_query($connect, $query))  
      {  
           echo "The client has been successfully added";  
      }  
      else  
      {  
           echo 'Error';  
      }  
 }  
 ?>

2 个答案:

答案 0 :(得分:3)

没有INSERT INTO ... WHERE语法。你想要做的是UPDATE ..SET ..WHERE

$query = "UPDATE client  
  SET NomClient ='$NomClient' ,PrenomClient = '$PrenomClient'
  WHERE   CodeClient='$CodeClient'"; 

正如我在评论中所说:

使用预备语句而不是mysqli_real_escape_string来阻止SQL注入。

答案 1 :(得分:2)

我提交以下内容,因为您没有回复我在您的问题下留下的评论。如果您在发布期间离开了问题,可以阅读以下内容:

看到标题“如何插入表格”,您似乎想要插入新记录。

您的“客户端ajoutéavecsuccès”这是的法语“客户端已成功添加,这也表明您希望插入新记录。

  • 编辑:在对问题进行更新之前,上述(法语)符合original post

INSERT没有WHERE子句,您的代码部分需要删除。

但是,如果您希望继续使用INSERT,则会有INSERT ... ON DUPLICATE KEY UPDATE

如果目标是更新现有记录,则需要使用“UPDATE”:

使用mysqli_error($connect)检查查询错误: