Foros del Web » Programando para Internet » PHP »

Problema con insertar en base de datos

Estas en el tema de Problema con insertar en base de datos en el foro de PHP en Foros del Web. Hola buenas, tengo este codigo: <? if(isset($_POST['upload'])) { $fileName = $_FILES['userfile']['name']; $tmpName = $_FILES['userfile']['tmp_name']; $fileSize = $_FILES['userfile']['size']; $fileType = $_FILES['userfile']['type']; $fp = fopen($tmpName, 'r'); $content ...
  #1 (permalink)  
Antiguo 03/11/2007, 16:45
 
Fecha de Ingreso: octubre-2007
Mensajes: 53
Antigüedad: 16 años, 6 meses
Puntos: 0
Problema con insertar en base de datos

Hola buenas, tengo este codigo:

<?
if(isset($_POST['upload']))
{
$fileName = $_FILES['userfile']['name'];
$tmpName = $_FILES['userfile']['tmp_name'];
$fileSize = $_FILES['userfile']['size'];
$fileType = $_FILES['userfile']['type'];

$fp = fopen($tmpName, 'r');
$content = fread($fp, $fileSize);
$content = addslashes($content);
fclose($fp);

if(!get_magic_quotes_gpc())
{
$fileName = addslashes($fileName);
}


include ("config.php");
mysql_connect("localhost","root","mewtwo")
or die("Error conectando a la base de datos");
mysql_select_db("db_banners")
or die ("Error seleccionando la base de datos");

$query = "INSERT INTO lista (name,type,size,content ) VALUES ('$fileName','$fileSize','$fileType','$content')";

mysql_query($query) or die('Error, query failed');


echo "<br>File $fileName uploaded<br>";
}
?>
<form action="" method="post" enctype="multipart/form-data" name="uploadform">
<table width="350" border="0" cellpadding="1" cellspacing="1" class="box">
<tr>
<td width="246"><input type="hidden"
name="MAX_FILE_SIZE" value="2000000"><input name="userfile"
type="file" class="box" id="userfile">
</td>
<td width="80"><input name="upload" type="submit" class="box" id="upload" value=" Upload "></td>
</tr>
</table>
</form>
</body>
</html>

Cada vez que quiero meter algo en al base de datos (insert), simpre se me va al "die", nunca consigo introducir nada e la base.

Me conecta bien y me selecciona la base bien pero no me mete nada.

Alguien ve algo raro??
gracias
  #2 (permalink)  
Antiguo 03/11/2007, 16:58
 
Fecha de Ingreso: mayo-2006
Ubicación: Bogotá
Mensajes: 2.061
Antigüedad: 18 años
Puntos: 50
Re: Problema con insertar en base de datos

pruebe colocando directamente el mysqlquery y si solo existen esos 4 campos en la tabla no coloque los nombres.

Código PHP:
$Variable mysql_query("INSERT INTO lista VALUES '$fileName','$fileSize','$fileType','$content')") or die('Error, query failed'); 
o sino yo creo que hay un problema con el tipo de dato por ejemplo esta intentando insertar caracteres en un campo tipo int o algo asi.
  #3 (permalink)  
Antiguo 03/11/2007, 17:09
(Desactivado)
 
Fecha de Ingreso: diciembre-2006
Mensajes: 225
Antigüedad: 17 años, 5 meses
Puntos: 1
Re: Problema con insertar en base de datos

Prueba haciendo esto

$query = "INSERT INTO lista (´name´,´type´,´size´,´content´ ) VALUES ('$fileName','$fileSize','$fileType','$content')";

bueno haces eso y si no entonces el problema es al conectar a la base mira a ver si en ese archivo de config no tienes alguna variable q este molestando el resto de codigo
  #4 (permalink)  
Antiguo 03/11/2007, 17:33
 
Fecha de Ingreso: octubre-2007
Mensajes: 53
Antigüedad: 16 años, 6 meses
Puntos: 0
Re: Problema con insertar en base de datos

He probado lo que me ahbeis comentado y nada sigue igual, aparentemente si me conecta bien, pero no me mete los datos.

Alguna otra cosa que pueda mirara??

gracias
  #5 (permalink)  
Antiguo 03/11/2007, 19:03
Avatar de eits  
Fecha de Ingreso: junio-2005
Ubicación: valladolid, yucatán
Mensajes: 1.655
Antigüedad: 18 años, 10 meses
Puntos: 88
Re: Problema con insertar en base de datos

prueba usando esto
Código PHP:
mysql_query($query) or die('Error,'.mysql_errno().' -> '.mysql_error()); 
con esto sabras si es error del mysql, y de ser así sabras que error es y lo comentas para ayudarte.

saludos.
__________________
El amor es la locura mas lucida que tiene el hombre.- Andres Henestrosa
la tristeza no existe, solo es... la ausencia de la felicidad.

Última edición por eits; 03/11/2007 a las 19:12
  #6 (permalink)  
Antiguo 04/11/2007, 05:24
 
Fecha de Ingreso: octubre-2007
Mensajes: 53
Antigüedad: 16 años, 6 meses
Puntos: 0
Re: Problema con insertar en base de datos

Poniendo eso que me comentas me sale esto en pantall:

ErrorField 'id' doesn't have a default value->Field 'id' doesn't have a default value

Q puede ser??
Thanks
  #7 (permalink)  
Antiguo 04/11/2007, 22:08
 
Fecha de Ingreso: mayo-2006
Ubicación: Bogotá
Mensajes: 2.061
Antigüedad: 18 años
Puntos: 50
Re: Problema con insertar en base de datos

ME LATE QUE ES QUE USTED TIENE UN CAMPO ID AUTOINCREMENTABLE Y LO ESTA IGNORANDO PRUEBE CON ESTO A VER S IDEPRONTO ES ESO.

Código PHP:
$Variable mysql_query("INSERT INTO lista VALUES ('','$fileName','$fileSize','$fileType','$content')") or die('Error, query failed'); 
FIJESE QUE AL PRINCIPIO DE LOS VALORES VAN DOS COMILLAS SENCILLAS SEGUIDAS
  #8 (permalink)  
Antiguo 05/11/2007, 18:59
Avatar de eits  
Fecha de Ingreso: junio-2005
Ubicación: valladolid, yucatán
Mensajes: 1.655
Antigüedad: 18 años, 10 meses
Puntos: 88
Re: Problema con insertar en base de datos

al hacer el INSERT hay que poner todos los valores que se colocaran en cada uno de los campos de tabla y para el caso de los autoincremente es poner NULL o como bien dice helacer con las comillas simples ( ' ' ), no recuerdo bien en este momento pero para el caso de mysql 5 y superiores creo que solo funciona con NULL(esto para el caso de los AUTOINCREMENT, si estoy mal, que alguién me corrija).

supongamos que mi tabla tiene 4 campos, id, nombre,edad,ocupacion,
ejemplo "MAL":
Código:
INSERT INTO tabla(nombre,edad,ocupacion) VALUES('eits',30,'programador')
ejemplo "BIEN":
Código:
INSERT INTO tabla(id,nombre,edad,ocupacion) VALUES(NULL,'eits',30,'programador')
ó
Código:
INSERT INTO tabla VALUES(NULL,'eits',30,'programador')
siempre hay que indicar todos los campos de la tabla a la cual se insertará el nuevo registro, a diferencia del UPDATE no es necesario indicar todos, para este último solo se indican los que se habrán de actualizar.

espero que con esto se resuelva el problema, de no ser así con gusto seguiré buscando para dar con el problema.

saludos.
__________________
El amor es la locura mas lucida que tiene el hombre.- Andres Henestrosa
la tristeza no existe, solo es... la ausencia de la felicidad.

Última edición por eits; 06/11/2007 a las 08:39
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 02:49.