首页 > 解决方案 > 在mysql中插入数据

问题描述

我无法使用角度将数据插入 mysql。如果我想在 mysql 中获取数据,它可以正常工作,但这不起作用。

我看不到错误。你能帮助我吗?

这是我的 html 表单:

           <form #suscribir="ngForm">      
                <div class="modal-body bodycolabora">
                    <label class="labelmodal">Recibe nuestros correos para estar al tanto de los últimos post y recursos subidos.</label>
                    <div class="md-form mb-2">
                        <label class="labelmodal">Tu nombre*</label>
                        <input class="form-control" type="text" name="nombre" class="input" placeholder="Tu nombre" [(ngModel)]="datos.nombre" required minlength="3" #nameInput="ngModel">          
                    </div>
                    <div *ngIf="nameInput.invalid && (nameInput.dirty || nameInput.touched)"
                        class="alert alert-danger">

                    <div *ngIf="nameInput.errors.required">
                        Escribe tu nombre.
                    </div>
                    <div *ngIf="nameInput.errors.minlength">
                        Name must be at least 4 characters long.
                    </div>
                    </div>                        
                    <div class="md-form mb-2">
                        <label class="labelmodal">Email*</label>
                        <input class="form-control" type="email" name="email" class="input" placeholder="Tu email" [(ngModel)]="datos.email" required email #emailInput="ngModel">         
                    </div> 
                    <div *ngIf="emailInput.invalid && (emailInput.dirty || emailInput.touched)"
                        class="alert alert-danger">

                    <div *ngIf="emailInput.errors.required">
                        Escribe tu email.
                    </div>          
                    </div>                         
                    <!--Privacidad-->
                    <div class="form-check form-check-inline">
                        <input class="form-check-input" type="checkbox" id="aceptopolitica" name="privacidad" value="acepto" ngModel required #privacidadInput="ngModel">
                        <label class="labelmodal" class="form-check-label" for="infantil" name="etapa" >Acepto la Política de privacidad</label> 
                    </div> 
                    <div *ngIf="privacidadInput.invalid && (privacidadInput.dirty || privacidadInput.touched)"
                        class="alert alert-danger">

                    <div *ngIf="privacidadInput.errors.required">
                        Acepta la política de privacidad
                    </div> 
                    </div>                      
                </div>
                <div class="modal-footer footercolabora d-flex justify-content-center">
                    <button (click)="suscriptores()" value="Nuevo suscriptor" type="submit" name="submit" id="submit" class="btn btncolabora" [disabled]="suscribir.invalid">Enviar →&lt;/button>
                </div>
            </form>

在我的 component.ts 我有:

datos={
    nombre:null,
    email:null
  }
constructor(private articulosServicio: ServicioService) { 
    
  }
suscriptores() {
    this.articulosServicio.suscriptores(this.datos).subscribe(datos => {
      if (datos['resultado']=='OK') {
        alert(datos['mensaje']);
      }
    });

在 service.ts 中:

url='http://xxxxxxxxxxx/'; // 

  constructor(private http: HttpClient) { }    
suscriptores(datos) {
        return this.http.post(`${this.url}suscriptores.php`, JSON.stringify(datos));
      }

最后是file.php,

<?php
header('Access-Control-Allow-Origin: *'); 
      header("Access-Control-Allow-Headers: Origin, X-Requested-With, Content-Type, Accept");
      header('Content-Type: application/json');
      
      $json = file_get_contents('php://input');
     
      $params = json_decode($json);
      
      require("conexion.php");
      $con=retornarConexion();   
      
      $email = mysqli_real_escape_string($con, $params->email);  
      $nombre = mysqli_real_escape_string($con, $params->nombre);  
    
      $query= 'INSERT INTO newsletter(email, nombre) VALUES ("' . $email . '","'. $nombre .'")';
      
      if(mysqli_query($con, $query)) 
        { 
          class Result {}
    
          $response = new Result();
          $response->resultado = 'OK';
          $response->mensaje = 'datos grabados';
        }  
        else  
        {  
          class Result {}
    
          $response = new Result();
          $response->resultado = 'OK';
          $response->mensaje = 'datos grabados';
        }
        header('Content-Type: application/json');
      echo json_encode($response);  
    ?>

抱歉所有代码,但我认为您可能需要 id 才能看到错误

标签: mysqlangular

解决方案


推荐阅读