Foros del Web » Programando para Internet » PHP »

[SOLUCIONADO] Inserción de registros no lo permite

Estas en el tema de Inserción de registros no lo permite en el foro de PHP en Foros del Web. Saludos, no entiendo porque no permite insertar registros en el metodo de la ultima clase, el metodo se llama Inserta_Formulario($cedula,$nombre,$apellido,$tele ,$direc,$correo) @import url("http://static.forosdelweb.com/clientscript/vbulletin_css/geshi.css"); Código PHP: ...
  #1 (permalink)  
Antiguo 04/10/2014, 12:52
 
Fecha de Ingreso: febrero-2013
Ubicación: Cali Colombia
Mensajes: 118
Antigüedad: 11 años, 2 meses
Puntos: 0
Inserción de registros no lo permite

Saludos, no entiendo porque no permite insertar registros en el metodo de la ultima clase, el metodo se llama Inserta_Formulario($cedula,$nombre,$apellido,$tele ,$direc,$correo)


Código PHP:
Ver original
  1. ----class conf.php -----
  2. <?php
  3. //servidor
  4.  define ('HOST','localhost');
  5.  //usuario bd
  6.  define ('USER','root');
  7.  //pass
  8.  define ('PASS','123456');
  9.  //base de datos
  10.  define ('DB_','almacen');
  11.  ?>
  12. --------------------------

Código PHP:
Ver original
  1. class conexion{
  2.              
  3.         //atributos
  4.         public $host;
  5.         public $user;
  6.         public $pass;
  7.         public $mysqli;
  8.         public $db;
  9.     private $array = array();
  10.  
  11.         function __construct(){
  12.                require_once ('conf.php');
  13.                 $this->host = HOST;
  14.                 $this->user = USER;
  15.                 $this->pass = PASS;
  16.                 $this->db = DB_;                                    
  17.         }
  18.         public function connect(){            
  19.             $this->mysqli = new mysqli($this->host, $this->user, $this->pass, $this->db);            
  20.                 //verificar conexion
  21.                 if($this->mysqli->errno == 0){
  22.              //  if(mysqli_connect_errno()== 0){
  23.                         return TRUE;
  24.                 }else{
  25.                         return FALSE;
  26.                 }
  27.         }
  28.  
  29.         public function close(){
  30.                 return $this->mysqli->close();
  31.         }

Código PHP:
Ver original
  1. <?php
  2.  
  3. include_once('conexion.php');
  4.  
  5.  class Inserciones extends conexion{
  6.    
  7.     public function __construct(){
  8.         parent::__construct();
  9.         parent::connect();
  10.         }
  11.  
  12.     public function consulta_existencia_usuario($cedula){
  13.             if($this->connect()){
  14.                 $query = 'SELECT Form_ced FROM Formulario WHERE Form_ced ='.$cedula;
  15.                 $result = $this->mysqli->query($query);
  16.                 if($result->num_rows > 0){
  17.                     return true;
  18.                 }else{
  19.                     return false;
  20.                 }
  21.                 parent::close();
  22.             }
  23.         }  
  24.  
  25.     public function Inserta_Formulario($cedula,$nombre,$apellido,$tele,$direc,$correo){
  26.         $this->connect();
  27.         // $salida = array("error"=> "problemas al insertar datos.");
  28.             $query = 'INSERT INTO Formulario VALUES('.$cedula.','.$nombre.','.$apellido.','.$tele.','.$direc.','.$correo.')';
  29.              $this->mysqli->query($query);
  30.             if($this->mysqli->affected_rows = 1){
  31.                 return true;                  
  32.             }else{
  33.                 return false;                
  34.             }  
  35.     }
  36.              //$this->mysqli->free_result();
  37. }
  38. ?>


Código PHP:
Ver original
  1. <?php
  2.  
  3.         if(isset($_POST["btn_enviar"])){
  4.             $cedula = $_POST['cedula'];
  5.             $nombre = $_POST["nombre"];
  6.             $apellido = $_POST["apellido"];
  7.             $telefono = $_POST["tel"];
  8.             $direccion = $_POST["dir"];
  9.             $correo = $_POST["correo"];
  10.             if(isset($cedula,$nombre,$apellido,$telefono,$direccion,$correo)){
  11.                
  12.                 echo '<br>'."Campos completados";
  13.                 $insertar = new Inserciones();
  14.             //  $consulta = new Consultas();
  15.                 $insertar->connect();
  16.             //  $consulta->connect();
  17.                 echo '<br> conectado = '.$insertar->connect();
  18.                 $bol = $insertar->consulta_existencia_usuario($cedula);
  19.                 if($bol){
  20.                     echo '<br>'."Usuario ya registrado";
  21.                 }else{ 
  22.                     echo '<br>'."Usuario no registrado";
  23.                   $imp = $insertar->Inserta_Formulario($cedula,$nombre,$apellido,$telefono,$direccion,$correo);
  24.                 //  $imp = $insertar->Inserta_Formulario($_POST['cedula'],$_POST['nombre'],$_POST['apellido'],$_POST['tel'],$_POST['dir'],$_POST['correo']);
  25.                       if($imp){
  26.                             echo '<br>'."se inserto correctamente";
  27.  
  28.                            
  29.                       }else{
  30.                             echo '<br>'."no se inserto ";    
  31.                      }
  32.                 }
  33.                
  34.             }else{
  35.                 echo '<br>'.'Uno de los campos al parecer no ha sido completado';  
  36.  
  37.             }
  38.         }
  39.    
  40. ?>
  #2 (permalink)  
Antiguo 04/10/2014, 13:19
Avatar de NSD
NSD
Colaborador
 
Fecha de Ingreso: mayo-2012
Ubicación: Somewhere
Mensajes: 1.332
Antigüedad: 12 años
Puntos: 320
Respuesta: Inserción de registros no lo permite

Una cuestion general:

Si estas usando una clase para la conexion, te conviene que esta tenga encapsulados todos los datos y que ademas, la conexión sea estática y se haga de forma atumatica para no tener que estar llamandola a cada rato.

Ej:

Código PHP:
Ver original
  1. <?php
  2. class conexion
  3. {
  4.     const HOST = "localhost";
  5.     const USER = "root";
  6.     const PASS = "123456";
  7.     const DB = "almacen";
  8.  
  9.     private static $mysqli = null;
  10.     private static $instances = 0;
  11.  
  12.     public function __construct()
  13.     {
  14.         self::$instances++; // Registras la nueva instancia.
  15.         if(is_null(self::$mysqli))
  16.         {
  17.             self::$mysqli = new mysqli(self::HOST, self::USER, self::PASS, self::DB);
  18.             if($this->mysqli->errno)
  19.                 throw new Exception("Error al conectarse a la base de datos.");
  20.         }
  21.     }
  22.  
  23.     public function __destruct()
  24.     {
  25.         self::$instances--; // Eliminas esta instancia.
  26.  
  27.         if(!self::$instances) // Si es la ultima instancia.
  28.         {
  29.             self::$mysqli->close();
  30.             self::$mysqli = null;
  31.         }
  32.     }

Por otro lado tu problema pasa porque no estas encerrando las variables entre comillas, podrias hacer eso o bien bindear los paraetros.
__________________
Maratón de desafíos PHP Junio - Agosto 2015 en FDW | Reglamento - Desafios
  #3 (permalink)  
Antiguo 04/10/2014, 13:28
 
Fecha de Ingreso: febrero-2013
Ubicación: Cali Colombia
Mensajes: 118
Antigüedad: 11 años, 2 meses
Puntos: 0
Respuesta: Inserción de registros no lo permite

Encontre el problema

era esto :
$query = "INSERT INTO Formulario VALUES('$cedula','$nombre','$apellido','$tele','$d irec','$correo');";

y no lo tenia de esa forma...

Etiquetas: mysql
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 20:32.