Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General » Mysql »

Error 1366

Estas en el tema de Error 1366 en el foro de Mysql en Foros del Web. Hola....tengo una consulta para hacerles. Intento insertar datos en una tabla del tipo entero (como un numero de tel) y tengo el siguient error: Error ...
  #1 (permalink)  
Antiguo 02/09/2012, 20:11
 
Fecha de Ingreso: febrero-2010
Mensajes: 153
Antigüedad: 14 años, 9 meses
Puntos: 3
Error 1366

Hola....tengo una consulta para hacerles.
Intento insertar datos en una tabla del tipo entero (como un numero de tel) y tengo el siguient error:
Error 1366 (HY000): Invalid string value.....
Mi version de Mysql es 5.1.31
Ojalà tengan alguna sugerencia.

Gracias y saludos
  #2 (permalink)  
Antiguo 02/09/2012, 21:01
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 17 años
Puntos: 2658
Respuesta: Error 1366

Bueno, el mensaje de error devuelto es bastante claro: Al menos una de las cadenas de texto que intentas insertar no es válida. Pero sin ver cómo es es insert y conocer cómo es la estructura de la tabla... Nadie podría ayudarte.
¿Te pusiste a verificar si lo que estás escribiendo en ese INSERT está correctamente escrito?
¿Verificaste algo?
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)

Última edición por gnzsoloyo; 03/09/2012 a las 04:21
  #3 (permalink)  
Antiguo 03/09/2012, 07:52
 
Fecha de Ingreso: febrero-2010
Mensajes: 153
Antigüedad: 14 años, 9 meses
Puntos: 3
Respuesta: Error 1366

Hola de nuevo...aqui pego el fragmento de codigo con el cual
intento incorporar datos a la tabla, la conexion funciona bien
por eso no la mando.
Intento esto manualmente desde la ventana de simbolo de sistema, y obtengo el
error 1366 (HY000): Invalid String ...at row Telefono.


mysql_select_db("base_datos",$con);
mysql_query("INSERT INTO tabla (Nombre,Apellido,Telefono,Correo) VALUES ('{$nom}','{$ap}','{$tel}','{$correo}')",$con);
$myerror=mysql_error();
if(!empty($myerror) {
echo"Error al insertar datos". $myerror;
}
else {
echo"Datos cargados satisfactoriamente";
}

Gracias por responder.
mysql_close();
  #4 (permalink)  
Antiguo 03/09/2012, 08:18
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 17 años
Puntos: 2658
Respuesta: Error 1366

Mira, hay algunas razones por las cuales se prohibe postear código de programación aquí (no importa el lenguaje ). Y te voy a comentar al menos tres:
1) No todos los foristas que se dedican a BBDD trabajan en PHP o el lenguaje que sea. Muchos ni siquiera programamos, porque no necesitas hacerlo para ser DBA.
2) El código de programación no nos dice nada a nivel de BBDD. Es para nosotros eso que "ensucia" el SQL y no nos deja ver los errores de sintaxis con claridad.
3) Por sobre todo, esconde los problemas potenciales en las variables, cuyos valores y origen ignoramos y por tanto no podemos saber con certeza si el inconvenientes son los datos en la base, la sintaxis, el sql_injection posible, o simplemente que los datos que llegan no existen o son datos "basura" (se denominan datos basura a los datos no filtrados, defectuosos o incorrectos).

En tu caso, lo único rescatable es esto:
Código MySQL:
Ver original
  1. INSERT INTO tabla
  2.     (Nombre, Apellido, Telefono, Correo)
  3.     ('{$nom}','{$ap}','{$tel}','{$correo}');
El problema es que no sabemos qué contenían las variables al momento de intentar el INSERT, por lo que no podemos saber si la cadena es válida, pero podemos presumir que hay algún problema sea con la cadena misma o con la tabla, cuya estructura te pedí y no has posteado.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #5 (permalink)  
Antiguo 03/09/2012, 14:40
 
Fecha de Ingreso: febrero-2010
Mensajes: 153
Antigüedad: 14 años, 9 meses
Puntos: 3
Respuesta: Error 1366

Hola...pido disculpas por haber posteado erronamente....
aquì entonces expongo la estructura de la tabla para tener mas claridad respecto a la pregunta que hice.

mysql> use base_datos;
Database changed
mysql> describe tabla;
+-----------+--------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+-----------+--------------+------+-----+---------+-------+
| Nombre | varchar(20) | YES | | NULL | |
| Apellido | varchar(20) | YES | | NULL | |
| Telefono | varchar(20) | YES | | NULL | |
| Correo | varchar(20) | YES | | NULL | |
| Cliente | varchar(20) | YES | | NULL | |
| Usuario | varchar(20) | YES | | NULL | |
| Clave | varchar(20) | YES | | NULL | |
| Codigo | varchar(20) | YES | | NULL | |
| Articulo | varchar(20) | YES | | NULL | |
| Titulo | varchar(100) | YES | | NULL | |
| Categoria | varchar(20) | YES | | NULL | |
| Mensajes | varchar(20) | YES | | NULL | |
| Saldos | varchar(50) | YES | | NULL | |
| Ingreso | date | YES | | NULL | |
| Egreso | date | YES | | NULL | |
+-----------+--------------+------+-----+---------+-------+
15 rows in set (0.01 sec)

mysql>

Reitero, cuando intento agregar datos aqui, recibo el mensaje de error comentado, marcandome que un numero como, por ej, 555555 no puede ser ingresado en Telefono.

Gracias por su tiempo y pronta respuesta.
  #6 (permalink)  
Antiguo 03/09/2012, 20:13
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 17 años
Puntos: 2658
Respuesta: Error 1366

Usa:
Código MySQL:
Ver original
  1. SHOW CREATE tabla;
Y copia lo que devuelva. Eso es la estructura. Lo que pasaste es ladescripción, y no trae la misma información.

En principio, es un error habitual cuando hay problemas de compatibilidad entre collations (de UTF-8 a Latin1 y viceversa).
¿Has verificado eso?
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #7 (permalink)  
Antiguo 04/09/2012, 07:54
 
Fecha de Ingreso: febrero-2010
Mensajes: 153
Antigüedad: 14 años, 9 meses
Puntos: 3
Respuesta: Error 1366

Hola...disculpas nuevamente....aqui mando la estructura de la tabla en uso.

mysql> SHOW CREATE table nom_tabla;
+----------+--------------------------------------------------------------------
--------------------------------------------------------------------------------
--------------------------------------------------------------------------------
--------------------------------------------------------------------------------
--------------------------------------------------------------------------------
--------------------------------------------------------------------------------
--------------------------------------------------------------------------------
----------------------------------------------------------------------+
| Table | Create Table






|
+----------+--------------------------------------------------------------------
--------------------------------------------------------------------------------
--------------------------------------------------------------------------------
--------------------------------------------------------------------------------
--------------------------------------------------------------------------------
--------------------------------------------------------------------------------
--------------------------------------------------------------------------------
----------------------------------------------------------------------+
| registro | CREATE TABLE `registro` (
`Nombre` varchar(20) DEFAULT NULL,
`Apellido` varchar(20) DEFAULT NULL,
`Telefono` varchar(20) DEFAULT NULL,
`Correo` varchar(20) DEFAULT NULL,
`Cliente` varchar(20) DEFAULT NULL,
`Usuario` varchar(20) DEFAULT NULL,
`Clave` varchar(20) DEFAULT NULL,
`Codigo` varchar(20) DEFAULT NULL,
`Articulo` varchar(20) DEFAULT NULL,
`Titulo` varchar(100) DEFAULT NULL,
`Categoria` varchar(20) DEFAULT NULL,
`Mensajes` varchar(20) DEFAULT NULL,
`Saldos` varchar(50) DEFAULT NULL,
`Ingreso` date DEFAULT NULL,
`Egreso` date DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8 |
+----------+--------------------------------------------------------------------
--------------------------------------------------------------------------------
--------------------------------------------------------------------------------
--------------------------------------------------------------------------------
--------------------------------------------------------------------------------
--------------------------------------------------------------------------------
--------------------------------------------------------------------------------
----------------------------------------------------------------------+
1 row in set (0.09 sec)

mysql>

Espero se vea si hay algun error.

Gracias nuevamente y saludos.
  #8 (permalink)  
Antiguo 04/09/2012, 08:31
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 17 años
Puntos: 2658
Respuesta: Error 1366

¿Verificaste el tema de las collation? ¿Caracteres especiales o charsets usados para cargar los datos?
Es lo último que te mencioné, porque ese error suele darse en esos casos.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #9 (permalink)  
Antiguo 04/09/2012, 09:41
 
Fecha de Ingreso: febrero-2010
Mensajes: 153
Antigüedad: 14 años, 9 meses
Puntos: 3
Respuesta: Error 1366

Hola nuevamente....necesito que me indiques como verificar esos temas, si bien manejo un poco mysql, aun no tengo ese manejo.
En la estructura de la tabla se ve algo de eso pero no se con que comparar.

Gracias y saludos
  #10 (permalink)  
Antiguo 04/09/2012, 09:58
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 17 años
Puntos: 2658
Respuesta: Error 1366

Cita:
En la estructura de la tabla se ve algo de eso pero no se con que comparar.
El tema es compararlo con el enlace usado para enviar los datos.
Ese INSERT, ¿lo ejecutas en una aplicación que estés programando tu, en un front-end, o en qué forma?
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #11 (permalink)  
Antiguo 04/09/2012, 10:19
 
Fecha de Ingreso: febrero-2010
Mensajes: 153
Antigüedad: 14 años, 9 meses
Puntos: 3
Respuesta: Error 1366

El insert lo ejecuto desde un script en php, como postee inicialmente, y tambien desde consola, es decir, desde simbolo de sistema, manualmente, asi:

mysql>INSERT INTO _tabla Nombre,Apellido VALUES ('pepe','algo');

ahora paraece funcionar...asique seguirè verificando.

igual, gracias por responder.

Etiquetas: sql
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 13:54.