Ejemplo PHP: Guardar JSON en mySQL

PHPjson-logo-390x250

Ejemplo de código fuente en php, para guardar o insertar un JSON en una tabla de una base de datos mySQL.

 

Descripción

Suponemos que tenemos este ejemplo de JSON:

[{"id":"1","nombre":"Jose","edad":"25","genero":"masculino","email":"josegonzales9871@gmail.com","localidad":"Madrid","telefono":"912546524"},{"id":"2","nombre":"Juan","edad":"31","genero":"masculino","email":"juanrodriguez65465@gmail.com","localidad":"Barcelona","telefono":"934654654"},{"id":"3","nombre":"Antonio","edad":"43","genero":"masculino","email":"antoni654654@gmail.com","localidad":"Valencia","telefono":"214748366"},{"id":"4","nombre":"Angelina","edad":"35","genero":"femenino","email":"angelina654456@gmail.com","localidad":"New York","telefono":"247483647"}]

que generamos y vimos en el siguiente ejemplo:

 

Ejemplo PHP: crear y leer JSON de una tabla mySQL

 

Bien, pues con dicho json, lo que haremos es mediante la función json_decode de php, decodificar y convertir la string codificada en JSON a una variable de php.

Después recorreríamos cada item con un foreach para ir insertándolo en la tabla clientes de la base de datos mysql, con la siguiente estructura:

 

demo_json_clientes

 

 

Código

$json = '[{"id":"1","nombre":"Jose","edad":"25","genero":"masculino","email":"josegonzales9871@gmail.com","localidad":"Madrid","telefono":"912546524"},{"id":"2","nombre":"Juan","edad":"31","genero":"masculino","email":"juanrodriguez65465@gmail.com","localidad":"Barcelona","telefono":"934654654"},{"id":"3","nombre":"Antonio","edad":"43","genero":"masculino","email":"antoni654654@gmail.com","localidad":"Valencia","telefono":"214748366"},{"id":"4","nombre":"Angelina","edad":"35","genero":"femenino","email":"angelina654456@gmail.com","localidad":"New York","telefono":"247483647"}]';


$datosclientes = json_decode($json, true);


$server = "localhost";
$user = "root";
$pass = "";
$bd = "demo_json";

//Creamos la conexión
$conexion = mysqli_connect($server, $user, $pass,$bd) 
or die("Ha sucedido un error inexperado en la conexion de la base de datos");


foreach ($datosclientes as $cliente) {
		
	mysqli_query($conexion,"INSERT INTO clientes (nombre,edad,genero,email,localidad,telefono) 
	VALUES ('".$cliente['nombre']."',".$cliente['edad'].",'".$cliente['genero']."','".$cliente['email']."','".$cliente['localidad']."',".$cliente['telefono'].")");	
		
}	


mysqli_close($conexion);