Realizar conexion a Base de Datos Mysql mediante PHP | Conectar PHP con Mysql
Para realizar la conexión a una base de datos MySQL mediante PHP Debemos tener primero una base de datos creada (¿Como crear una base de datos en MySQL?) .
Vamos a proceder a explicar la forma mas optima de conectarse a una base de datos.
Creamos la estructura de folders

Carpeta Clases : En este folder guardaremos toda la lógica y clases que heredaran de una clase principal llamada conexión.
Carpeta Conexión : Este folder almacenaremos únicamente dos archivos conexion.php el cual contendrá la clase conexión que a su vez se encargara de la conexion con la base de datos. y el archivo config que es donde almacenaremos los datos para conectarnos a dicha base de datos
Archivo config
Como he dicho anteriormente es donde almacenaremos los datos para conectarnos a nuestra base de datos. Almacenaremos dichos datos en formato JSON de la siguiente manera.
¿Por que hacerlo de esta manera?
Por que al momento de cargar o trasladar el sistema que creemos a otro servidor, tendremos que cambiar todos o algunos de los datos de conexión y así evitaremos que por error modifiquemos código importante para el funcionamiento del sistema.
{
"conexion":{
"server" : "direccion-de-tu-servidor",
"user" : "nombre-de-tu-usuario",
"password" : "tu-contraseña",
"database" :"nombre-de-tu-basededatos",
"port" : "3306"
}
}
Archivo conexion.php
Como he dicho anteriormente en este archivo escribiremos la lógica de conexión a la base de datos y lo haremos de la se siguiente manera
<?php
//comenzamos declarando el nombre de la clse
class conexion {
//creamos los atributos de la clase
private $server;
private $user;
private $password;
private $database;
private $port;
private $conexion;
//declaramos el contructor
function __construct(){
//obtenemos los datos del archivo config mediente el metodo datosConexion
$listadatos = $this->datosConexion();
foreach ($listadatos as $key => $value) {
$this->server = $value['server'];
$this->user = $value['user'];
$this->password = $value['password'];
$this->database = $value['database'];
$this->port = $value['port'];
}
$this->conexion = new mysqli($this->server,$this->user,$this->password,$this->database,$this->port);
if($this->conexion->connect_errno){
echo "algo va mal con la conexion";
die();
}
}
//obtenemos los datos del archivo config
private function datosConexion(){
$direccion = dirname(__FILE__);
$jsondata = file_get_contents($direccion . "/" . "config");
return json_decode($jsondata, true);
}
//convertiremos los datos obtenidos en utf8
private function convertirUTF8($array){
array_walk_recursive($array,function(&$item,$key){
if(!mb_detect_encoding($item,'utf-8',true)){
$item = utf8_encode($item);
}
});
return $array;
}
//esta funcion la invocaremos cuando necesitemos utilizar un select
public function obtenerDatos($sqlstr){
$results = $this->conexion->query($sqlstr);
$resultArray = array();
foreach ($results as $key) {
$resultArray[] = $key;
}
return $this->convertirUTF8($resultArray);
}
//esta funcion la invocaremos cuando necesitemos utilizar insert,delete,update
public function nonQuery($sqlstr){
$results = $this->conexion->query($sqlstr);
return $this->conexion->affected_rows;
}
//UNICAMENTE INSERT YA QUE NOS DEVOLVERA EL ULTIMO ID INSERTADO
public function nonQueryId($sqlstr){
$results = $this->conexion->query($sqlstr);
$filas = $this->conexion->affected_rows;
if($filas >= 1){
return $this->conexion->insert_id;
}else{
return 0;
}
}
//encriptar CONTRASEÑAS
protected function encriptar($string){
return md5($string);
}
}
?>
¿Como hago una consulta SELECT?
Para realizar una consulta SELECT desde el archivo index.php ubicado en la raíz del sistema. tendremos que hacer lo siguiente
<?php
//requerimos el archivo conexion
require_once 'clases/conexion/conexion.php';
//instanciamos la clase conexion
$_conexion = new conexion;
//creamos la consulta SELECT
$query= "SELECT * FROM pacientes";
//enviamos la consulta para ser ejecutada
$datosRecibidos = $_conexion->obtenerDatos($query);
//imprimimos el resultado
print_r($datosRecibidos);
?>
¿Como hago una consulta INSERT,UPDATE,DELETE?
Para realizar una consulta INSERT, DELETE , UPDATE desde el archivo index.php ubicado en la raíz del sistema. tendremos que hacer lo siguiente (El mismo metodo funciona para INSERT,DELETE,UPDATE)
<?php
//requerimos el archivo conexion
require_once 'clases/conexion/conexion.php';
//instanciamos la clase conexion
$_conexion = new conexion;
//creamos la consulta UPDATE,INSERT o DELETE
$query= "INSERT INTO pacientes (id,nombre,edad)values('1','Wilfredo Aleman','31')";
//enviamos la consulta para ser ejecutada
$datosRecibidos = $_conexion->nonQuery($query);
/*imprimimos el resultado es importante reclacar que este metodo retorna las filas afectadas,
En este caso si el INSERT se ha realizado la respuesta sera 1 si no la respuesta sera 0 */
print_r($datosRecibidos);
?>
¿Te gusta este tipo de contenido ?
Nos vemos en la próximo post de este blog!!
No te olvides de suscribirte a mi canal de YouTube y apuntarte mis cursos de desarrollo web profesional que te ayudarán muchísimo en tu camino como programador o desarrollador web .