Foros del Web » Programando para Internet » PHP »

Insert erroneo

Estas en el tema de Insert erroneo en el foro de PHP en Foros del Web. Hola! Bueno, os muestro el código: Código: <?php //Iniciamos Sesion session_start(); //Conexion require_once('config.php'); //Array de errores $errmsg_arr = array(); //Variable de error $errflag = false; ...
  #1 (permalink)  
Antiguo 27/12/2009, 10:39
 
Fecha de Ingreso: julio-2009
Mensajes: 157
Antigüedad: 14 años, 9 meses
Puntos: 2
Insert erroneo

Hola!

Bueno, os muestro el código:

Código:
<?php
	//Iniciamos Sesion
	session_start();
	
	//Conexion
	require_once('config.php');
	
	//Array de errores
	$errmsg_arr = array();
	
	//Variable de error
	$errflag = false;
	
	//Conectamos con base de datos
	$link = mysql_connect(DB_HOST, DB_USER, DB_PASSWORD);
	if(!$link) {
		die('Error en conexión con el servidor: ' . mysql_error());
	}
	
	//Select la base de datos
	$db = mysql_select_db(DB_DATABASE);
	if(!$db) {
		die("No hay base de datos con ese nombre");
	}
	
	
	function clean($str) {
		$str = @trim($str);
		if(get_magic_quotes_gpc()) {
			$str = stripslashes($str);
		}
		return mysql_real_escape_string($str);
	}
	

	
        $email = clean($_POST['email']);
	
	
	//Comprobamos si hay algun error
	
if($email == '') {
		die("Espacio en Blanco");
	}
	
	
	//Existe?
	if($email != '') {
		$qry = "SELECT * FROM EMAIL WHERE email='$email'";
		$result = mysql_query($qry);
		if($result) {
			if(mysql_num_rows($result) > 0) {
				$errmsg_arr[] = 'Login ID already in use';
				$errflag = true;
			}
			@mysql_free_result($result);
		}
		else {

		}
	}
	
	//Si hay error, le volvemos a que se registre
	if($errflag) {
		$_SESSION['ERRMSG_ARR'] = $errmsg_arr;
		session_write_close();
		header("location: register-form.php");
		exit();
	}

	//Create INSERT query
	$fecha= date('d-m-Y');
        $hora= date('H:i:s');
	$qry = "INSERT INTO EMAIL VALUES('$email')";
	$result = @mysql_query($qry);
	
	//Check whether the query was successful or not
	if($result) {
		header("location: register-success.php");
		exit();
	}else {
		die("$email");

	}
?>
La variable $email viene de otro formulario pero la coge bien, lo que le ocurre es que NO inserta, mostrandome siempre el email (mirar en el codigo lo marcado en negrita, ya que siempre hace eso)

Alguien se le ocurre un por qué?
  #2 (permalink)  
Antiguo 27/12/2009, 10:44
Avatar de jackson666  
Fecha de Ingreso: noviembre-2009
Ubicación: Buenos Aires, Argentina
Mensajes: 1.971
Antigüedad: 14 años, 5 meses
Puntos: 65
Respuesta: Insert erroneo

Tu tabla se llama EMAIL o email?
Tiene una sola columna esa tabla?

Si lo que queres saber es si esta vacia la variable $email usa empty(), no compares con una cadena vacia...

Proba con esta parte asi, para que usas el arroba si lo que queres justamente es ver el error...
Código PHP:
Ver original
  1. $qry = "INSERT INTO email VALUES('$email')";
  2. $result = mysql_query($qry)or die(mysql_error());
__________________
HV Studio
Diseño y desarrollo web
  #3 (permalink)  
Antiguo 27/12/2009, 10:45
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: Insert erroneo

necesitas depurar tu consulta... y además, procura no ocultar los errores con @
Código PHP:
$result mysql_query($qry) or die(mysql_error()); 
aunque te adelanto, el INSERT solo tiene los VALUES y necesitas especificar también las columnas...
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #4 (permalink)  
Antiguo 27/12/2009, 10:49
 
Fecha de Ingreso: enero-2009
Mensajes: 408
Antigüedad: 15 años, 3 meses
Puntos: 14
Respuesta: Insert erroneo

Levanta el @ , es decir quita esa supresión asi te dice que error tenes .
  #5 (permalink)  
Antiguo 27/12/2009, 10:52
 
Fecha de Ingreso: julio-2009
Mensajes: 157
Antigüedad: 14 años, 9 meses
Puntos: 2
Respuesta: Insert erroneo

Mi tabla se llama EMAIL y tiene 4 columnas pero son nullos los 4 (no he declarado ninguna primary key).

No he declarado las columnas porque estoy acostumbrado en Oracle a no hacerlo jaja (cuando pongo todo)

No se que he hecho pero ya funciona, que cosas...

MIL GRACIAS
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 21:26.