PHP - Problema con insercion base de datos

 
Vista:
sin imagen de perfil
Val: 17
Ha aumentado su posición en 7 puestos en PHP (en relación al último mes)
Gráfica de PHP

Problema con insercion base de datos

Publicado por nestor (11 intervenciones) el 30/03/2020 19:28:48
Hola estoy queriendo insertar un string en una base de datos pero me da errr, no me reconoce el formato de la hora. Este es el codigo:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
<?php
 
$id=$_GET['id'];
//prod
 
$servername = "localhost";
$username = "admin";
$password = "123456";
$dbname = "Posicion_Remises";
$array = explode(";", $id);
 
$fechaHora=$array[0]; //FECHA HORA
$ID_Remis=$array[1];////ID-remis
$Telefono=$array[2];///Telefono
$Latitud=$array[3];///Latitud
$Longuitud=$array[4];//Longuitud
$Estado=$array[5];//Estado
 
 
// Create connection
$conn = new mysqli($servername, $username, $password, $dbname);
// Check connection
if ($conn->connect_error) {
    die("Connection failed: " . $conn->connect_error);
}
$sql = "INSERT INTO Posicion_Remises (FechaHora,ID_Remis,Telefono,Latitud,Longuitud,Estado) VALUES ('$fechaHora','$ID_Remis','$Telefono','$Latitud','$Longuitud','$Estado')";
 
if ($conn->query($sql) === TRUE) {
    echo "Nuevo registro creado exitosamente";
} else {
    echo "Error: " . $sql . "<br>" . $conn->error;
}
 
$conn->close();
 
 
?>
lo que hago en mandar la cadena de caracteres en el contenido del id y luego separar los datos por ; ejecuto el archivo WritePosition.php
1
http://www.ledsimple.com.ar/datos/WritePosition.php?id=2020-03-29;20:01:40;12;5493496508790;54.071124;-1.995948;Ocupado
No soy programador de php, seguro es un simple error. Gracias por la ayuda.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de Kathyu
Val: 1.802
Plata
Ha mantenido su posición en PHP (en relación al último mes)
Gráfica de PHP

Problema con insercion base de datos

Publicado por Kathyu (905 intervenciones) el 30/03/2020 20:01:45
Es imperativo usar un campo String para la fecha? porque?

Porque no usa un date o datetime?
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar
sin imagen de perfil
Val: 17
Ha aumentado su posición en 7 puestos en PHP (en relación al último mes)
Gráfica de PHP

Problema con insercion base de datos

Publicado por nestor (11 intervenciones) el 30/03/2020 20:28:14
Los datos se cargan desde un string que mando con la etique id pero el dato de la fecha es de tipo DateTime. No se como se hace.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Kathyu
Val: 1.802
Plata
Ha mantenido su posición en PHP (en relación al último mes)
Gráfica de PHP

Problema con insercion base de datos

Publicado por Kathyu (905 intervenciones) el 30/03/2020 21:02:06
Cambiar en su base el campo de string a datetime?
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Julio
Val: 2.007
Plata
Ha mantenido su posición en PHP (en relación al último mes)
Gráfica de PHP

Problema con insercion base de datos

Publicado por Julio (830 intervenciones) el 30/03/2020 20:03:45
Hola.

No no, los datos no se envían así, lo que estás haciendo es bastante inseguro además. Con lo que has puesto, cualquier te podría destrozar la base de datos. Imagina que yo entro ahora aquí:

http://www.ledsimple.com.ar/datos/WritePosition.php?id=2020-03-29;20:01:40;12;5493496508790;54.071124;-1.995948;Ocupado

Y otra vez:

http://www.ledsimple.com.ar/datos/WritePosition.php?id=2020-03-29;20:01:40;12;5493496508790;54.071124;-1.995948;Ocupado

Y otra:

http://www.ledsimple.com.ar/datos/WritePosition.php?id=2020-03-29;20:01:40;12;5493496508790;54.071124;-1.995948;Ocupado

Te insertaría en tu base de datos filas y filas sin parar hasta llenártela.

Te dejo un par de artículos para que veas cómo debe hacerse:

Solicitar datos: https://programacionbasica.es/como-solicitar-datos-al-usuario-en-php/
Recogida de datos: https://programacionbasica.es/recogida-de-datos-de-formularios-en-php/

-----------------------------
Aprende la programación desde una perspectiva básica y simplista en Programación Básica
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil
Val: 17
Ha aumentado su posición en 7 puestos en PHP (en relación al último mes)
Gráfica de PHP

Problema con insercion base de datos

Publicado por nestor (11 intervenciones) el 30/03/2020 20:21:49
Hola. Gracias por responder. El tema es que los datos los manda un modulo GSM con el metodo get por comandos AT. Estoy de acuerdo que es inseguro pero solamente yo voy a saber cual es la estructura correcta y cual es el archivo php, lo que puedo hacer es consultar una base de datos con los numeros de telefono, campo que envio, y solo agregar el dato a la otra base de datos de la posiciones si el telefono esta agregado a la lista de usuarios.
El sistema tiene un GPS que me da la latitud y longuitud.La estructura del id puede ser: 2020-03-29;20:01:40;12;5493496508770;54.071124;-1.995948;Ocupado
5493496508770 es el numero de telefono que es unico para cada usuario. Podria consultar otra base de datos con los numeros de telefono y solo agregar si el numero esta dentro de los identificados. Podria ademas agregar una clave.
No desestimo tu opinion, solo que trato de consiliar el hardware con el software y que la carga de los datos sea lo mas rapida posible. Gracias por tu tiempo.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Julio
Val: 2.007
Plata
Ha mantenido su posición en PHP (en relación al último mes)
Gráfica de PHP

Problema con insercion base de datos

Publicado por Julio (830 intervenciones) el 30/03/2020 20:32:34
Vale, entiendo.

Si el problema entonces es el de crear un DateTime a partir de un string, se hace así:

1
$date = DateTime::createFromFormat('Y-m-d', '2020-03-29');

-----------------------------
Aprende la programación desde una perspectiva básica y simplista en Programación Básica
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil
Val: 17
Ha aumentado su posición en 7 puestos en PHP (en relación al último mes)
Gráfica de PHP

Problema con insercion base de datos

Publicado por nestor (11 intervenciones) el 30/03/2020 21:08:36
Gracias por responder, estuve leyendo y modifique el codigo pero me da errpr:[30-Mar-2020 19:05:34 UTC] PHP Catchable fatal error: Object of class DateTime could not be converted to string in /home/fabisimpleled/public_html/datos/WritePosition.php on line 26
este es el codigo:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
$fechaHora = DateTime::createFromFormat('Y-m-d H:i:s', $array[0]);
$ID_Remis=$array[1];////ID-remis
$Telefono=$array[2];///Telefono
$Latitud=$array[3];///Latitud
$Longuitud=$array[4];//Longuitud
$Estado=$array[5];//Estado
 
 
// Create connection
$conn = new mysqli($servername, $username, $password, $dbname);
// Check connection
if ($conn->connect_error) {
    die("Connection failed: " . $conn->connect_error);
}
$sql = "INSERT INTO Posicion_Remises (FechaHora,ID_Remis,Telefono,Latitud,Longuitud,Estado) VALUES ('$fechaHora','$ID_Remis','$Telefono','$Latitud','$Longuitud','$Estado')";
 
if ($conn->query($sql) === TRUE) {
    echo "Nuevo registro creado exitosamente";
} else {
    echo "Error: " . $sql . "<br>" . $conn->error;
}
 
$conn->close();
 
 
?>
los datos van asi:
1
WritePosition.php?id=2020-03-29 20:01:40;12;5493496508790;54.071124;-1.995948;Ocupado
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Julio
Val: 2.007
Plata
Ha mantenido su posición en PHP (en relación al último mes)
Gráfica de PHP

Problema con insercion base de datos

Publicado por Julio (830 intervenciones) el 31/03/2020 08:39:30
1
$fechaHora = (DateTime::createFromFormat('Y-m-d H:i:s', $array[0]))->format( 'Y-m-d H:i:s' );

A ver, prueba así.

-----------------------------
Aprende la programación desde una perspectiva básica y simplista en Programación Básica
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil
Val: 17
Ha aumentado su posición en 7 puestos en PHP (en relación al último mes)
Gráfica de PHP

Problema con insercion base de datos

Publicado por nestor (11 intervenciones) el 31/03/2020 16:31:05
Hola, gracias, tampoco funciono. Me da este error:
1
2
3
4
[31-Mar-2020 14:25:56 UTC] PHP Fatal error:  Uncaught Error: Call to a member function format() on boolean in /home/fabisimpleled/public_html/datos/WritePosition.php:12
Stack trace:
#0 {main}
  thrown in /home/fabisimpleled/public_html/datos/WritePosition.php on line 12
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Julio
Val: 2.007
Plata
Ha mantenido su posición en PHP (en relación al último mes)
Gráfica de PHP

Problema con insercion base de datos

Publicado por Julio (830 intervenciones) el 31/03/2020 16:56:32
¿Qué te sale cuando haces esto?

1
2
$fechaHora = DateTime::createFromFormat('Y-m-d H:i:s', $array[0]);
var_dump($fechaHora); die;

-----------------------------
Aprende la programación desde una perspectiva básica y simplista en Programación Básica
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil
Val: 17
Ha aumentado su posición en 7 puestos en PHP (en relación al último mes)
Gráfica de PHP

Problema con insercion base de datos

Publicado por nestor (11 intervenciones) el 31/03/2020 17:28:26
Hola, le agregue un campo autoincremental a la tabla al principio, si hago esto:
1
$date = DateTime::createFromFormat('Y-m-d', '2020-03-29');
me sale esto:
1
2
Error: INSERT INTO Posicion_Remises (FechaHora,ID_Remis,Telefono,Latitud,Longuitud,Estado) VALUES (2020-03-29 20:01:40,'12','3496508790','54.071124','-1.995948','Ocupado')
You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near '20:01:40,'12','3496508790','54.071124','-1.995948','Ocupado')' at line 1

si hago esto:
1
2
$fechaHora = DateTime::createFromFormat('Y-m-d H:i:s', $array[0]);
var_dump($fechaHora); die;

me sale esto:
1
object(DateTime)#1 (3) { ["date"]=> string(26) "2020-03-29 20:01:40.000000" ["timezone_type"]=> int(3) ["timezone"]=> string(3) "UTC" } 
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Julio
Val: 2.007
Plata
Ha mantenido su posición en PHP (en relación al último mes)
Gráfica de PHP

Problema con insercion base de datos

Publicado por Julio (830 intervenciones) el 31/03/2020 17:37:27
1
Error: INSERT INTO Posicion_Remises (FechaHora,ID_Remis,Telefono,Latitud,Longuitud,Estado) VALUES (2020-03-29 20:01:40,'12','3496508790','54.071124','-1.995948','Ocupado')

Me ha llamado la atención aquí que 2020-03-29 20:01:40 sale sin comillas, cuando debería estar entrecomillado. ¿Puedes mirarlo?

-----------------------------
Aprende la programación desde una perspectiva básica y simplista en Programación Básica
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil
Val: 17
Ha aumentado su posición en 7 puestos en PHP (en relación al último mes)
Gráfica de PHP

Problema con insercion base de datos

Publicado por nestor (11 intervenciones) el 31/03/2020 17:49:05
[Te paso denuevo el codigo, que ejecute ahora y el resultado.
RESULTADO:
1
2
Error: INSERT INTO Posicion_Remises (FechaHora,ID_Remis,Telefono,Latitud,Longuitud,Estado) VALUES ('2020-03-29 20:01:40','12','3496508790','54.071124','-1.995948','Ocupado')
Unknown column 'FechaHora' in 'field list'
CODIGO:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
$fechaHora = (DateTime::createFromFormat('Y-m-d H:i:s', $array[0]))->format( 'Y-m-d H:i:s' );
$ID_Remis=$array[1];////ID-remis
$Telefono=$array[2];///Telefono
$Latitud=$array[3];///Latitud
$Longuitud=$array[4];//Longuitud
$Estado=$array[5];//Estado
 
 
// Create connection
$conn = new mysqli($servername, $username, $password, $dbname);
// Check connection
if ($conn->connect_error) {
    die("Connection failed: " . $conn->connect_error);
}
$sql = "INSERT INTO Posicion_Remises (FechaHora,ID_Remis,Telefono,Latitud,Longuitud,Estado) VALUES ('$fechaHora','$ID_Remis','$Telefono','$Latitud','$Longuitud','$Estado')";
 
if ($conn->query($sql) === TRUE) {
    echo "Nuevo registro creado exitosamente";
} else {
    echo "Error: " . $sql . "<br>" . $conn->error;
}
 
$conn->close();
 
 
?>
Fijate que $fechaHora esta entre comillas ahora. Adjunto estructura de la tabla
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Julio
Val: 2.007
Plata
Ha mantenido su posición en PHP (en relación al último mes)
Gráfica de PHP

Problema con insercion base de datos

Publicado por Julio (830 intervenciones) el 31/03/2020 18:09:55
1
Unknown column 'FechaHora' in 'field list'

Aquí te lo está diciendo, que no existe el campo FechaHora. Por lo que he podido buscar en otros sitios, es como si al crear la base de datos hubiera creado un espacio invisible, por ejemplo 'FechaHora ' y de ahí el problema. Prueba a ir a la base de datos, renombrar el campo (si no puedes con FechaHora déjalo sólo como Fecha o lo que quieras) y probar a ver si ese error desaparece.

-----------------------------
Aprende la programación desde una perspectiva básica y simplista en Programación Básica
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil
Val: 17
Ha aumentado su posición en 7 puestos en PHP (en relación al último mes)
Gráfica de PHP

Problema con insercion base de datos

Publicado por nestor (11 intervenciones) el 31/03/2020 20:33:52
Hola, hice lo que vos me dijiste, cambie el nombre en la tabla por HoraFecha y sigue lo mismo:
1
2
Error: INSERT INTO Posicion_Remises (HoraFecha,ID_Remis,Telefono,Latitud,Longuitud,Estado) VALUES ('2020-03-28 20:01:40','12','5493496508790','54.071124','-1.995948','Ocupado')
Unknown column 'HoraFecha' in 'field list'
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Julio
Val: 2.007
Plata
Ha mantenido su posición en PHP (en relación al último mes)
Gráfica de PHP

Problema con insercion base de datos

Publicado por Julio (830 intervenciones) el 31/03/2020 22:32:42
¿Has probado a cambiarle el nombre a otro distinto? Es lo que indica el error, así que más allá de eso no sabría decirte qué está pasando ahí.

-----------------------------
Aprende la programación desde una perspectiva básica y simplista en Programación Básica
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil
Val: 17
Ha aumentado su posición en 7 puestos en PHP (en relación al último mes)
Gráfica de PHP

Problema con insercion base de datos

Publicado por nestor (11 intervenciones) el 31/03/2020 23:46:28
si lo cambie, pero ademas probe insertar un texto fijo con el formato correcto y sigue lo mismo.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Julio
Val: 2.007
Plata
Ha mantenido su posición en PHP (en relación al último mes)
Gráfica de PHP

Problema con insercion base de datos

Publicado por Julio (830 intervenciones) el 01/04/2020 08:29:41
Pues es muy extraño, no sabría decirte porque más allá de ese error que te indica, todo parece estar bien. Prueba a cambiar el campo en la base de datos, hazlo campo de texto en lugar de datetime y a ver si se te guarda al menos.

-----------------------------
Aprende la programación desde una perspectiva básica y simplista en Programación Básica
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Mauro
Val: 2.761
Oro
Ha aumentado 1 puesto en PHP (en relación al último mes)
Gráfica de PHP

Problema con insercion base de datos

Publicado por Mauro (1031 intervenciones) el 17/11/2020 15:59:09
Si todavía estás buscando ayuda con esto, ¿puedes publicar el resutlado de ejecutar este comando en el MySQL?

1
SHOW CREATE TABLE Posicion_Remises;
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar