Calificación:
  • 1 voto(s) - 5 Media
  • 1
  • 2
  • 3
  • 4
  • 5
[PHP+MYSQLi] Conectandose a una base de datos (BD)
#1
Hola a todos, este un tutorial usando MySQLi que es el sucesor de MySQL en PHP (ya que este sera deprecated).

(20-04-2014, 04:22 AM)AbaddonOrmuz escribió: Sería mucho mejor usar MySQLi o PDO, la extensión mysql_* ya es considerada obsoleta.



Empecemos con un archivo de conexión, por ejemplo BD.php (y de preferencia ajustamos permisos a 6-6-6).

Copiamos y pegamos estas variables:

Código PHP:
<?php

// CONNECT TO THE DATABASE
    
$DB_NAME 'NOMBRE_BD'//AQUI VA EL NOMBRE DE NUESTRA BD
    
$DB_HOST 'localhost'//AQUI VA EL HOST MYSQL DE NUESTRA BD
    
$DB_USER 'USUARIO_BD'//AQUI VA EL USUARIO DE NUESTRA BD
    
$DB_PASS 'PASSWORD_BD'//AQUI VA LA CONTRASEÑA DE NUESTRO USUARIO DE BD

    
$mysqli = new mysqli($DB_HOST$DB_USER$DB_PASS$DB_NAME); 

Ahora añadimos las siguientes lineas para "matar la conexión" si algo sale mal:

Código PHP:
if($mysqli->connect_errno 0){
 
   die('<h1>Error de acceso, revisa que los datos de acceso sean correctos.</h1>[' $db->connect_error ']');
exit();


Y después de que hayamos añadido cuanto código ocupemos (consultas y eso), cerramos la conexión:

Código PHP:
// CLOSE CONNECTION
    
mysqli_close($mysqli); 

En un ejemplo sencillo, este el código que deben ya tener:

Código PHP:
<?php

// CONNECT TO THE DATABASE
    
$DB_NAME 'NOMBRE_BD'//AQUI VA EL NOMBRE DE NUESTRA BD
    
$DB_HOST 'localhost'//AQUI VA EL HOST MYSQL DE NUESTRA BD
    
$DB_USER 'USUARIO_BD'//AQUI VA EL USUARIO DE NUESTRA BD
    
$DB_PASS 'PASSWORD_BD'//AQUI VA LA CONTRASEÑA DE NUESTRO USUARIO DE BD

    
$mysqli = new mysqli($DB_HOST$DB_USER$DB_PASS$DB_NAME);

if(
$mysqli->connect_errno 0){
 
   die('<h1>Error de acceso, revisa que los datos de acceso sean correctos.</h1>[' $db->connect_error ']');
exit();
}
    
// CLOSE CONNECTION
    
mysqli_close($mysqli);
    

?>

Y si queremos que no nos muestre el típico error de PHP de errores de conexión

Cita:Warning: mysqli::mysqli(): (HY000/1045): Access denied for user 'USUARIO_BD'@localhost (using password: YES) in /home/USUARIO_CPANEL/public_html/bd.php on line 10

Añadimos este código antes de las variables de conexión:
Código PHP:
// Turn off all error reporting
error_reporting(0); 

Esto es todo, en estos links pueden encontrar más información:
http://php.net/manual/en/book.mysqli.php
http://php.net/manual/en/function.error-reporting.php

http://codular.com/php-mysqli [FUENTE]
http://www.phphaven.com/article.php?id=65 [FUENTE]
http://www.pontikis.net/blog/how-to-use-...you-should [FUENTE]
Cualquier duda, pregunta, comentario... Aquí estoy Guiño
#2
Agregar que también se recomienda no almacenar los datos (host, usuario, contraseña, etc) en variables, aún cuando sean variables privadas/protegidas dentro de una clase.

Se puede obtener los datos de un fichero externo, puede ser desde un fichero .INI o inclusive PHP, con permisos de sólo lectura.

Por ejemplo con PHP.

config.inc.php
Código PHP:
return [
 
'host' => 'localhost',
 
'port' => 3306/* El puerto por default de MySQL */
 
'user' => 'root',
 
'password' => '',
 
'database' => '',
 
'table_prefix' => 't_'
]; 

index.php
Código PHP:
/* Leer fichero */
$config = require __DIR__ '/config.inc.php';

/* Creando un nuevo objeto usando el fichero de configuración */
$dbh = new mysqli($config['host'], $config['user'], $config['password'], $config['database'], $config['port']);

/* Consulta */
$stmt $dbh->query('SELECT * FROM ' $config['table_prefix'] . 'tabla'); 
WWW


Posibles temas similares...
Tema Autor Respuestas Vistas Último mensaje
  Las bases de datos más grandes del mundo Smithcanal 3 324 06-06-2017, 04:16 PM
Último mensaje: easy english
  [Tutorial] Pasar MySQL a MySQLi[POO] amner 6 450 03-05-2017, 02:05 AM
Último mensaje: ReyNexo23
  [Tutorial] Pasar base de datos MySQL por SSH Jvh_22 1 404 11-10-2016, 04:12 PM
Último mensaje: efbsfcd
  GOOGLE CHARTS: INTRODUCCION A LA VISUALIZACION DE DATOS, GRAFICAS, MAPAS Y MAS khristia 2 415 16-08-2016, 08:27 PM
Último mensaje: efbsfcd
  [Duda] Cómo puedo usar python para calcular datos y mostrarlos vía php piero.cpvd 3 783 05-12-2015, 12:12 PM
Último mensaje: midd_98
  Enviar datos vía post y get usando cURL y PHP torgar22 5 2,638 30-11-2015, 06:36 AM
Último mensaje: habacuc78
  Solucionado: Problema al conectar con base de datos remota mysql efbsfcd 10 985 21-07-2015, 02:23 PM
Último mensaje: Kevin9908
  Proteger pagina con login sin Base de datos zodiaco 12 2,133 04-07-2015, 11:38 AM
Último mensaje: davilro
  [PHP+PDO+MYSQL] Conectandose a una base de datos (BD) Kevin9908 0 527 03-07-2015, 03:03 PM
Último mensaje: Kevin9908
  [PHP+MYSQL] Conectandose a una base de datos (BD) aperpen 6 832 01-07-2015, 03:11 PM
Último mensaje: d0rag0n



Usuarios navegando en este tema: 1 invitado(s)