PHP para iniciados en la programación (XI), trabajando con base de datos

tutorial PHP para iniciados en la programacion
 

PHP tiene una rica colección de funciones integradas para manipular bases de datos MySQL.

En este tutorial, aprenderás

  • mysqli_connect
  • mysqli_select_db
  • mysqli_query
  • mysqli_num_rows
  • mysqli_fetch_array
  • mysqli_close
  • PHP Data Access Object PDO

 

mysqli_connect

La función de conexión mysql de PHP se utiliza para conectarse a un servidor de base de datos MySQL.

Tiene la siguiente sintaxis.

 

<?php;
$db_handle = mysqli_connect($ db_server_name,$ db_user_name, $db_password);
?>

 

AQUÍ,

  • «$db_handle» es la variable de recurso de conexión de base de datos.
  • «mysqli_connect (…)» es la función para la conexión de la base de datos php
  • «$server_name» es el nombre o la dirección IP del servidor que aloja el servidor MySQL.
  • «$user_name» es un nombre de usuario válido en el servidor MySQL.
  • «$db_password» es una contraseña válida asociada con un nombre de usuario en el servidor MySQL.

 

mysqli_select_db

La función mysqli_select_db se usa para seleccionar una base de datos.

Tiene la siguiente sintaxis.

 

<?php
mysqli_select_db($db_handle, $database_name);
?>

 

AQUÍ,

  • «Mysqli_select_db (…)» es la función de selección de base de datos que devuelve verdadero o falso
  • «$database_name» es el nombre de la base de datos
  • «$link_identifier» es opcional, se usa para pasar el enlace de conexión del servidor

 

mysqli_query

La función mysqli_query se usa para ejecutar consultas SQL .

La función se puede usar para realizar lo que llamamos un CRUD, o sea,  ejecutar los siguientes tipos de consulta;

  • Insertar
  • Seleccione
  • Actualizar
  • Eliminar

Tiene la siguiente sintaxis.

 

<?php
mysqli_query($db_handle, $query);
?>

 

AQUÍ,

  • «mysqli_query (…)» es la función que ejecuta las consultas SQL.
  • «$query» es la consulta SQL que se ejecutará
  • «$link_identifier» es opcional, se puede usar para pasar el enlace de conexión del servidor

 

mysqli_num_rows

La función mysqli_num_rows se usa para obtener el número de filas devueltas de una consulta de selección.

Tiene la siguiente sintaxis.

 

<?php
mysqli_num_rows($resultado);
?>

 

AQUÍ,

  • «mysqli_num_rows (…)» es la función de recuento de filas
  • «$result» es el conjunto de resultados mysqli_query

 

Función PHP mysqli_fetch_array

La función mysqli_fetch_array se utiliza para obtener matrices de filas de un conjunto de resultados de consulta.

Tiene la siguiente sintaxis.

 

<?php
mysqli_fetch_array($resultado);
?>

 

AQUÍ,

  • «mysqli_fetch_array (…)» es la función para recuperar matrices de filas
  • «$result» es el resultado devuelto por la función mysqli_query.

 

mysqli_close

La función mysqli_close se usa para cerrar una conexión de base de datos abierta.

Tiene la siguiente sintaxis.

 

<?php
mysqli_close($db_handle);
?>

 

AQUÍ,

 
  • «mysqli_close (…)» es la función PHP
  • «$link_identifier» es opcional, se usa para pasar el recurso de conexión del servidor

Veamos ejemplos prácticos que aprovechan estas funciones.

Creación de la base de datos MySQL Este tutorial asume el conocimiento de MySQL y SQL, si estos términos no le son familiares, consulte nuestros tutoriales de MySQL y SQL.

Crearemos una base de datos simple llamada my_personal_contacts con una sola tabla.

A continuación se detallan los pasos para crear la base de datos y la tabla.

  • Conéctese a MySQL utilizando su herramienta de acceso favorita, como MySQL workbench, phpMyAdmin, etc.
  • Crear una base de datos llamada my_person_contacts
  • Ejecute el script que se muestra a continuación para crear la tabla e insertar algunos datos ficticios.

 

CREATE TABLE IF NOT EXISTS `my_contacts` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`full_names` varchar(255) NOT NULL,
`gender` varchar(6) NOT NULL,
`contact_no` varchar(75) NOT NULL,
`email` varchar(255) NOT NULL,
`city` varchar(255) NOT NULL,
`country` varchar(255) NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB  DEFAULT CHARSET=latin1 AUTO_INCREMENT=5 ;
INSERT INTO `my_contacts` (`id`, `full_names`, `gender`, `contact_no`, `email`, `city`, `country`) 
VALUES
(1, 'Zeus', 'Male', '111', 'zeus @ olympus . mt . co', 'Agos', 'Greece'),
(2, 'Anthena', 'Female', '123', 'anthena @ olympus . mt . co', 'Athens', 'Greece'),
(3, 'Jupiter', 'Male', '783', 'jupiter @ planet . pt . co', 'Rome', 'Italy'),
(4, 'Venus', 'Female', '987', 'venus @ planet . pt . co', 'Mars', 'Italy');

 

Ahora tenemos una base de datos configurada que manipularemos desde PHP.

Lectura de registros de la base de datos Ahora crearemos un programa que imprima los registros de la base de datos.

<?php 
	$dbh = mysqli_connect('localhost', 'root', 'melody'); 
	//connect to MySQL server if (!$dbh)     
    
	die("Unable to connect to MySQL: " . mysqli_error());
    
	//if connection failed output error message 
    if (!mysqli_select_db($dbh,'my_personal_contacts'))     
    
	die("Unable to select database: " . mysqli_error()); 
    //if selection fails output error message 
    
	$sql_stmt = "SELECT * FROM my_contacts"; 
    //SQL select query 
    
     $result = mysqli_query($dbh,$sql_stmt);
     //execute SQL statement 
     
	if (!$result)     
		die("Database access failed: " . mysqli_error()); 
    	//output error message if query execution failed 
        
		$rows = mysqli_num_rows($result); 
   		// get number of rows returned 
    
	if ($rows) {     
	while ($row = mysqli_fetch_array($result)) {         
		echo 'ID: ' . $row['id'] . '<br>';         
		echo 'Full Names: ' . $row['full_names'] . '<br>';        
		echo 'Gender: ' . $row['gender'] . '<br>';         
		echo 'Contact No: ' . $row['contact_no'] . '<br>';         
		echo 'Email: ' . $row['email'] . '<br>';         
		echo 'City: ' . $row['city'] . '<br>';         
		echo 'Country: ' . $row['country'] . '<br><br>';     
	} 
} 
mysqli_close($dbh); //close the database connection 
?>

 

La ejecución del código anterior devuelve los resultados que se muestran en el diagrama que se muestra a continuación

PHP: MySQL Functions

Insertar nuevos registros

Veamos ahora un ejemplo que agrega un nuevo registro a nuestra tabla. El siguiente código muestra la implementación.

 

<?php 
	$dbh = mysqli_connect('localhost', 'root', 'melody'); 
	//connect to MySQL server if (!$dbh)     
    
	die("Unable to connect to MySQL: " . mysqli_error()); 
	//if connection failed output error message 
    
	if (!mysqli_select_db($dbh,'my_personal_contacts'))     
	die("Unable to select database: " . mysql_error()); 
	//if selection fails output error message 
    
	$sql_stmt = "INSERT INTO `my_contacts` (`full_names`,`gender`,`contact_no`,`email`,`city`,`country`)"; 
	$sql_stmt .= " VALUES('Poseidon','Mail','541',' poseidon @ sea . oc ','Troy','Ithaca')"; 
    
	$result = mysqli_query($dbh,$sql_stmt); //execute SQL statement 
    
	if (!$result)     
		die("Adding record failed: " . mysqli_error()); 
		//output error message if query execution failed echo "Poseidon has been successfully added to your contacts list";
        
 mysqli_close($dbh); //close the database connection 
?>

Al ejecutar las salidas de código anteriores «Poseidon has been successfully added», vuelva al ejemplo de consulta de selección y recupere sus contactos nuevamente.

Vea si Poseidón ha sido agregado a su lista.

 

Actualización de registros

Veamos ahora un ejemplo que actualiza un registro en la base de datos.

Supongamos que Poseidón ha cambiado su número de contacto y dirección de correo electrónico.

 

<?php 
	$dbh = mysqli_connect('localhost', 'root', 'melody'); 
	//connect to MySQL server 
    
	if (!$dbh) &nbsp;&nbsp;&nbsp;
	die("Unable to connect to MySQL: " . mysqli_error()); 
    //if connection failed output error message 
    
	if (!mysqli_select_db($dbh,'my_personal_contacts')); 
	die("Unable to select database: " . mysql_error()); 
	//if selection fails output error message 
    
	$sql_stmt = "UPDATE `my_contacts` SET `contact_no` = '785',`email` = ' poseidon @ ocean . oc ';
	//SQL select query $sql_stmt .= " WHERE `id` = 5"; 
    
	$result = mysqli_query($dbh,$sql_stmt); 
	//execute SQL statement if (!$result)
    
	die("Deleting record failed: " . mysqli_error()); 
	//output error message if query execution failed 
    
	echo "ID number 5 has been successfully updated"; 
mysqli_close($dbh); //close the database connection 
?>;

 

Eliminar registros

Veamos ahora un ejemplo que elimina registros de la base de datos.

Supongamos que Venus tiene una orden de restricción contra nosotros, y debemos eliminar la información de sus contactos de nuestra base de datos.

 

<?php 
	$dbh = mysqli_connect('localhost', 'root', 'melody'); 
	//connect to MySQL server
    
	if (!$dbh) &nbsp;&nbsp;&nbsp; 
	die("Unable to connect to MySQL: " . mysqli_error()); 
	//if connection failed output error message 
    
	if (!mysqli_select_db($dbh,'my_personal_contacts')) &nbsp;&nbsp;&nbsp; 
	die("Unable to select database: " . mysqli_error()); 
	//if selection failes output error message $id = 4; 
	//Venus's ID in the database 
    
	$sql_stmt = "DELETE FROM `my_contacts` WHERE `id` = $id"; 
	//SQL Delete query 
    
	$result = mysqli_query($dbh,$sql_stmt); 
	//execute SQL statement 
    
	if (!$result) &nbsp;&nbsp;&nbsp; 
	die("Deleting record failed: " . mysqli_error());
	//output error message if query execution failed 
    
	echo "ID number $id has been successfully deleted"; 
mysqli_close($dbh); //close the database connection 
?>

 

PHP Data Access Object PDO

El PDO es una clase que nos permite manipular diferentes motores de bases de datos como MySQL, PostGres, MS SQL Server, etc.

El siguiente código muestra el método de acceso a la base de datos utilizando el objeto PDO.

Nota: el siguiente código supone el conocimiento del lenguaje SQL, las matrices, el manejo de excepciones y el ciclo foreach.

 

<?php 
	try {    
	$pdo = new PDO("mysql:host=localhost;dbname=my_personal_contacts", 'root', 'melody');     
    
	$pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);     
	$pdo->exec('SET NAMES "utf8"');     
    
	$sql_stmt = "SELECT * FROM `my_contacts`";     
	$result = $pdo->query($sql_stmt);     
	$result->setFetchMode(PDO::FETCH_ASSOC);     
	$data = array();     
	foreach ($result as $row) {         
	$data[] = $row;     
  }     
print_r($data); 
} 
catch (PDOException $e) {     
	echo $e->getMessage(); 
} 
?>

AQUÍ,

  • «Try {… catch …}» es el bloque de manejo de excepciones
  • «$ Pdo = new PDO (» mysql … «crea una instancia del objeto PDO y pasa los controladores de la base de datos, los nombres del servidor y la base de datos, la identificación del usuario y la contraseña.
  • «$ Pdo-> setAtt …» establece el modo de error PDO y los atributos del modo de excepción
  • «$ Pdo-> exec (‘SET NA …» establece el formato de codificación

ODBC ODBC es el acrónimo de Open Database Connectivity. Tiene la siguiente sintaxis básica.

<?php $conn = odbc_connect($dsn, $user_name, $password); ?>

 

AQUÍ,

  • «Odbc_connect» es la función integrada de PHP
  • «$dsn» es el nombre de la fuente de datos ODBC.
  • «$user_name» es opcional, se usa para el nombre de usuario ODBC
  • «$contraseña» es opcional, se utiliza para la contraseña ODBC

 

El ejemplo utilizado lo asume;

  • Están utilizando el sistema operativo Windows
  • Ha creado un enlace ODBC a la base de datos Northwind de Microsoft Access llamada northwind

A continuación se muestra el código de implementación para el acceso a datos ODBC

<?php 
	$dbh = odbc_connect('northwind', '', ''); 
	if (!$dbh) {     
	exit("Connection Failed: " . $dbh); 
} 
	$sql_stmt = "SELECT * FROM customers"; 
	$result = odbc_exec($dbh, $sql_stmt); 
	if (!$result) {     
	exit("Error access records"); 
} 
	while (odbc_fetch_row($result)) {     
	$company_name = odbc_result($result, "CompanyName");    
	$contact_name = odbc_result($result, "ContactName");     
	echo "<b>Company Name (Contact Person):</b> $company_name ($contact_name) <br>";
} 
odbc_close($dbh); 
?>

 

Resumen

  • MySQL es una gestión de base de datos relacional de código abierto disponible en la mayoría de los servidores de alojamiento web
  • PHP tiene una rica colección de funciones integradas que simplifican el trabajo con MySQL
  • PDO es el acrónimo de PHP Data Object; se usa para conectarse a diferentes motores de bases de datos usando el mismo objeto
  • PHP usa la función odbc_connect para manipular bases de datos a través de ODBC

Compartir esta entrada.

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

CAPTCHA ImageChange Image