Quijost

Por favor ingresa o regístrate.

Ingresar con nombre de usuario, contraseña y duración de la sesión
Búsqueda Avanzada  

Noticias:

Deja tu post en el foro para hacer algun tipo de consulta

Autor Tema: ¿como hacer un script base para conectar a bases de datos MySQL con PHP?  (Leído 82313 veces)

0 Usuarios y 1 Visitante están viendo este tema.

shakaran

  • Soporte
  • Administrator
  • Usuario profesional
  • *****
  • Karma: +12/-0
  • Desconectado Desconectado
  • Sexo: Masculino
  • Mensajes: 487
  • Un buen soporte lo es todo
    • Ver Perfil
    • Shakaran

El siguiente es un pequeño tutorial de como hacer una buena base o plantilla de código para conectar tus bases de datos vía MySQL a tus proyectos PHP.

Para conectar a MySQL necesitas crear un base de datos y un usuario MySQL, puedes hacerlo vía Cpanel o vía SSH si dispones de permisos en una cuenta ebasic o superior de Quijost.

Una vez creado, recopila esos datos, y crearemos una carpeta llama "inc" de "includes" bajo tu directorio public_html que será la destinada a guardar archivos que normalmente se incluirán en varias partes del proyecto.

Dentro de la carpeta crea un archivo config.php donde guardaremos los datos de acceso a la base de datos y usuario mysql con permisos para acceder.

El archivo config.php puede tener el siguiente aspecto:

Código: [Seleccionar]
<?php
# Configuración de datos para conectar al servidor de base de datos
$servidor              'localhost';         # Servidor (por defecto:localhost)
$prefijo_usuario       'quijostest';              # Usuario para el hospedaje (por defecto:quijostest)
$usuario_mysql         $prefijo_usuario.'_test';  # Usuario MySql para la base de datos
$contraseña_mysql      'test12345';         # Contraseña MySql para la base de datos
$base_de_datos_mysql   $prefijo_usuario.'_test';  # Base de datos mysql
?>


Para aquellos que desconozcan PHP, el archivo no es complicado. Con <? se debe abrir todo script PHP y con ?> se debe cerrar.

Toda variable en PHP debe ir precedida de un dolar $. y posteriormente lo que hacemos es asignar los valores de usuario, base de datos, y contraseña de mysql.

Es buena costumbre entre los programadores, realizar su código escrito en ingles, primero para que sea más compresible a otros y segundo porque suele resultar más corto y entendible que variables en otros idiomas, además de ser un estándar internacional a la hora de desarrollar software.

Por lo tanto, el archivo en inglés quedaría:

Código: [Seleccionar]
<?php
# Data config for connect to database server
$server           'localhost';         # Server (default:localhost)
$user_prefix      'quijostest';              # User of hosting (default:test)
$username_mysql   $user_prefix.'_test';  # Mysql database user
$password_mysql   'test12345';         # Mysql database password
$database_mysql   $user_prefix.'_test';  # Mysql database
?>


También como consejo de programación, acostumbraros a poner las variables en minúsculas y si tienen varias palabras, ponerlas con _ para separarlas.

Una vez creado este archivo, ya tenemos la base para el siguiente que realizará nuestras conexiones a la base de datos. Este archivo se llamará connection.php e irá en la carpeta "inc".

Y tendrá el siguiente contenido:

Código: [Seleccionar]
<?php
require_once('config.php');

#  Check database to host connection 
if(!function_exists('mysql_connect'))
{
    echo 
'PHP cannot find the mysql extension. MySQL is required for run. Aborting.';
    exit();
}

$dbh = @mysql_connect($server$username_mysql$password_mysql)
or die(
'Error: Database to host connection: '.mysql_error());

mysql_select_db($database_mysql$dbh)
or die(
'Error: Select database: '.mysql_error());
?>


En este archivo, hemos incluido el archivo config.php, comprobamos que exista la función de conexion de mysql, sino mostramos un error y realizamos la conexión con los datos de config.php, guardando en una variable $dbh (DataBase Host) el acceso de conexión.

Ahora simplemente para utilizar esta "base" o plantilla en cualquier script PHP que este bajo public_html, incluiremos el archivo connection.php y haremos consultas con mysql_query con la variable $dbh por ejemplo un index.php que muestre los nombres de usuarios de una tabla users:

Código: [Seleccionar]
<?php
require_once('inc/connection.php');

#Execute a MySQL query
$result mysql_query("SELECT name FROM users"$dbh);

while(
$row mysql_fetch_array($result))
{
    echo 
'User: '.$row['name'].'<br>';
}
?>


Cualquier duda, mejora o comentario son bienvenidos.
« última modificación: Agosto 27, 2010, 22:17:06 pm por shakaran »
En línea
Ángel Guzmán Maeso
Quijost Founder - Backend Engineer & Main support

yebenes

  • Usuario nuevo
  • *
  • Karma: +1/-0
  • Desconectado Desconectado
  • Mensajes: 8
    • Ver Perfil
Re:¿como hacer un script base para conectar a bases de datos MySQL con PHP?
« Respuesta #1 en: Noviembre 28, 2010, 12:48:54 pm »

El tutorial es genial, me ha servido muchísimo.

Pero faltaría algo por explicar, cuando quiero añadir un registro a la tabla uso INSERT INTO, ¿pero cuando quiero añadir 2000 registros? hago 2000 INSERT INTO? Tiene que existir alguna manera más eficiente de hacerlo, ¿no?

Gracias por todo! Un saludo, yebenes.
En línea

shakaran

  • Soporte
  • Administrator
  • Usuario profesional
  • *****
  • Karma: +12/-0
  • Desconectado Desconectado
  • Sexo: Masculino
  • Mensajes: 487
  • Un buen soporte lo es todo
    • Ver Perfil
    • Shakaran
Re:¿como hacer un script base para conectar a bases de datos MySQL con PHP?
« Respuesta #2 en: Noviembre 28, 2010, 13:42:05 pm »

Si haces 2000 INSERT Mysql no tendrá problemas (a partir de millones podría sufrir un ligero overload).

Si realmente quieres generar 2000 insert y hacerlos como una sola transacción, podrías hacer algo como múltiples inserciones en un INSERT o bien mandar todos los insert como una sola transacción:

Código: [Seleccionar]
LOCK TABLES a WRITE;
INSERT INTO a VALUES (1,23),(2,34),(4,33); // 3 Inserciones en un insert
INSERT INTO a VALUES (8,26),(6,29); // 2 Insercciones en un insert
UNLOCK TABLES;

Más info en la documentación de MySQL:

http://dev.mysql.com/doc/refman/5.0/es/insert-speed.html
En línea
Ángel Guzmán Maeso
Quijost Founder - Backend Engineer & Main support

4ndr3s.v

  • Visitante
Re:¿como hacer un script base para conectar a bases de datos MySQL con PHP?
« Respuesta #3 en: Junio 19, 2015, 17:15:00 pm »

buen dia  este  es mi primer  post   en este foro y espero que sean muchos mas en aporte y solucion de inquietudes.  en este caso tengo un problema con un codigo   que no me conecta  la base de datos   helpp llevo tres dias   revisando el codigo y no encuentro el error


este es el codigo una ayuda por favor

<% PHP
   include ("config.inc.php");

   Encabezado();

if(empty($redirect))
   $redirect = "./";

   switch($action){

      case 'Iniciar':

         $userqry = db_query("select * from Usuario Where User = '$login' AND Password = password('$clave') AND Autorizado = 'S'");
         
         $limpiaqry = db_query("delete from Sesion where DATE_ADD(Inicio, INTERVAL 10 MINUTE)<now()");
               
               if (db_num_rows($userqry)!= 0){

                  $datos_user_obj = db_fetch_object($userqry);

                     
                  $Usuario=array("Nivel"=>$datos_user_obj->Nivel,"IDUsuario"=>$datos_user_obj->IDUsuario,"Nombre"=>$datos_user_obj->Nombre,"User"=>$user,"flag"=>"TRUE");

                     $usuariosave= addslashes(serialize($Usuario));

                     $newsesion=md5(uniqid(date("Y-m-d",time())));

                     $fecha=date("Y-m-d H-i-s",time());

                     $guardarqry = db_query("insert into Sesion values ('$newsesion','$fecha','$usuariosave')");

                     setcookie("COOKIE_SESION",$newsesion);
                        

                     header("Location: $redirect");
                  
                     
               }//if ($pass!=$userdata->password)
               else
                  $ERROR="Verifique nombre de usuario y clave";

      break;//Case 'Iniciar'

      case 'LogOut':

            setcookie("COOKIE_SESION"); //Independiente se libera el cookie

            $borrarqry = db_query("delete from Sesion where IDSesion='$COOKIE_SESION'");

            $err=1;

            $ERROR="Sesion terminada correctamente";


      break; //case 'Logout'

   }//switch($action)

%>PHP_SELF%.



 :-\ :-\ :-\ :-\ :-\ :-\ :-\ :-\ :-\ :-\   
En línea
 

Página generada en 0.098 segundos con 33 consultas.