PDF de programación - mysqli

Imágen de pdf mysqli

mysqligráfica de visualizaciones

Publicado el 24 de Junio del 2017
1.264 visualizaciones desde el 24 de Junio del 2017
48,0 KB
10 paginas
Creado hace 15a (11/12/2008)
Programación en Internet 2008-2009

Departamento de Lenguajes y
Sistemas Informáticos

mysqli
mysqli

Programación en Internet

Curso 2008-2009

Programación en Internet – Curso 2008-2009

Índice

f

di

I t

• ¿Qué es?
• Interfaz procedimental
t l
• Interfaz orientado a objetos
• Sentencias preparadas

DLSI - Universidad de Alicante

1

Programación en Internet 2008-2009

Programación en Internet – Curso 2008-2009

¿Qué es?

• mysqli es una extensión de PHP que permite

i

t

d

acceder a ciertas funciones disponibles a
partir de MySQL 4.1 que no se pueden
emplear con la extensión tradicional

ibl

di

f

i

• Proporciona:

f

t

I

– Mayor velocidad y seguridad
– Interfaz procedimental u orientado a objetos
i
– Soporte de transacciones
– Nuevo protocolo binario de MySQL 4.1 que

t d

bj

di

t

t

l

permite ciertas funciones como la ejecución de
sentencias preparadas

Programación en Internet – Curso 2008-2009

Interfaz procedimental

• Principales funciones:

error de conexión

sentencia SQL

último error
último error

– mysqli connect(servidor, usuario, contraseña,
do , usua o, co t ase a,

ysq _co ect(se
baseDatos): devuelve un identificador de recurso o false si la
conexión falla

– mysqli_connect_error(): devuelve una descripción del último

– mysqli_query(identificador, sentencia): ejecuta una

– mysqli_error(identificador): devuelve una descripción del

– mysqli_fetch_assoc(resultado): devuelve la siguiente fila

en el resultado o false en caso contrario

– mysqli_free_result(resultado): libera la memoria

empleada por un resultado

– mysqli_close(identificador): cierra la conexión con una

base de datos

DLSI - Universidad de Alicante

2

Programación en Internet 2008-2009

Programación en Internet – Curso 2008-2009

Interfaz procedimental

<?php

// Conecta con el servidor de MySQLy
$link = @mysqli_connect(

'localhost', // El servidor
'wwwdata', // El usuario
'', // La contraseña
'biblioteca'); // La base de datos

if(!$link) {
) {

( $
echo '<p>Error al conectar con la base de datos: '

. mysqli_connect_error();

echo '</p>';
exit;

}

Programación en Internet – Curso 2008-2009

Interfaz procedimental

// Ejecuta una sentencia SQL

$sentencia = 'SELECT * FROM libros';
if(!($resultado = @mysqli_query($link, $sentencia)))
{

echo "<p>Error al ejecutar la sentencia

<b>$sentencia</b>: " . mysqli_error($link);

echo '</p>';
exit;

}

DLSI - Universidad de Alicante

3

Programación en Internet 2008-2009

Programación en Internet – Curso 2008-2009

Interfaz procedimental

echo '<table><tr>';
echo '<th>IdLibro</th><th>Título</th><th>Resumen</th>';
echo
'<th>Autor</th><th>Categoría</th><th>Editorial</th><th>Anyo
</th></tr>';
// Recorre el resultado y lo muestra en forma de tabla HTML
while($fila = mysqli_fetch_assoc($resultado)) {

echo '<tr>';
echo '<td>' . $fila['IdLibro'] . '</td>';
echo '<td>' . $fila['Titulo'] . '</td>';
echo '<td>' . $fila['Resumen'] . '</td>';
echo '<td>' . $fila['Autor'] . '</td>';
echo '<td>' . $fila['Categoria'] . '</td>';
echo '<td>' . $fila['Editorial'] . '</td>';
echo '<td>' . $fila['Anyo'] . '</td>';
echo '</tr>';

}
echo '</table>';

Programación en Internet – Curso 2008-2009

Interfaz procedimental
// Libera la memoria ocupada por el resultado
mysqli free result($resultado);
y q _
// Cierra la conexión
mysqli_close($link);

_

?>

DLSI - Universidad de Alicante

4

Programación en Internet 2008-2009

Programación en Internet – Curso 2008-2009

Interfaz orientado a objetos

• Mismas funciones que el interfaz procedimental, pero

son métodos de objetos
son métodos de objetos

• Clases:

– mysqli: representa una conexión entre PHP y una base de

datos en MySQL

– mysqli_stmt: representa una sentencia preparada
– mysqli_result: representa el resultado de una consulta

Programación en Internet – Curso 2008-2009

Interfaz orientado a objetos

• mysqli->métodos:

– connect(servidor, usuario, contraseña, baseDatos):
)

(

,

,

,

conecta con una base de datos

– query(sentencia): ejecuta una sentencia SQL, devuelve un

objeto de tipo mysqli_result

– prepare(sentencia): crea una sentencia preparada, devuelve

un objeto de tipo mysqli_stmt

– close(): cierra la conexión con una base de datos

• mysqli->propiedades:

última operación

– affected_rows: devuelve el número de filas afectadas por la
l

d fil

l ú

t d

d

f

l

– error: devuelve una descripción del último error
– field_count: devuelve el número de columnas de la última

consulta

DLSI - Universidad de Alicante

5

Programación en Internet 2008-2009

Programación en Internet – Curso 2008-2009

Interfaz orientado a objetos

• mysqli_result->métodos:

– fetch assoc(): devuelve la siguiente fila en el resultado o

()

_

g

false en caso contrario

– free_result(): libera la memoria empleada por un resultado
– close(): cierra el resultado

• mysqli_result->propiedades:

– field_count: devuelve el número de columnas de la última

consulta

– num_rows: devuelve el número de filas en el resultado

Programación en Internet – Curso 2008-2009

Interfaz orientado a objetos

<?php

// Conecta con el servidor de MySQLy
$mysqli = @new mysqli(

'localhost', // El servidor
'wwwdata', // El usuario
'', // La contraseña
'biblioteca'); // La base de datos

if(mysqli connect errno()) {
()) {

( y q _
echo '<p>Error al conectar con la base de datos: '

_

. mysqli_connect_error();

echo '</p>';
exit;

}

DLSI - Universidad de Alicante

6

Programación en Internet 2008-2009

Programación en Internet – Curso 2008-2009

Interfaz orientado a objetos

// Ejecuta una sentencia SQL
$sentencia = 'SELECT * FROM libros';
if(!($resultado = $mysqli->query($sentencia))) {

echo "<p>Error al ejecutar la sentencia

<b>$sentencia</b>: " . $mysqli->error;

echo '</p>';
exit;

}

Programación en Internet – Curso 2008-2009

Interfaz orientado a objetos

echo '<table><tr>';
echo '<th>IdLibro</th><th>Título</th><th>Resumen</th>';
echo
'<th>Autor</th><th>Categoría</th><th>Editorial</th><th>Anyo
</th></tr>';
// Recorre el resultado y lo muestra en forma de tabla HTML
while($fila = $resultado->fetch_assoc()) {

echo '<tr>';
echo '<td>' . $fila['IdLibro'] . '</td>';
echo '<td>' . $fila['Titulo'] . '</td>';
echo '<td>' . $fila['Resumen'] . '</td>';
echo '<td>' . $fila['Autor'] . '</td>';
echo '<td>' . $fila['Categoria'] . '</td>';
echo '<td>' . $fila['Editorial'] . '</td>';
echo '<td>' . $fila['Anyo'] . '</td>';
echo '</tr>';

}
echo '</table>';

DLSI - Universidad de Alicante

7

Programación en Internet 2008-2009

Programación en Internet – Curso 2008-2009

Interfaz orientado a objetos

// Libera la memoria ocupada por el resultado
$resultado->close();
// Cierra la conexión
$mysqli->close();

?>

Programación en Internet – Curso 2008-2009

Sentencias preparadas

• Mecanismo que permite optimizar la ejecución de
una sentencia SQL cuando se repite varias veces
una sentencia SQL cuando se repite varias veces
– Realizar una búsqueda pero con distintos valores
select nombre,edad from cliente where edad >=

select nombre,edad from cliente where edad >=

18 and edad <= 25

20 and edad <= 30

– Insertar varias filas similares
insert into Personas values ("Juan", "López")
insert into Personas values ("Pedro",

"Martínez")

DLSI - Universidad de Alicante

8

Programación en Internet 2008-2009

Programación en Internet – Curso 2008-2009

Sentencias preparadas

• Las sentencias preparadas están optimizadas para

ser ejecutadas muchas veces
ser ejecutadas muchas veces

• Previamente a su ejecución, su código es optimizado

para tardar menos al ejecutar
– Este proceso también consume un tiempo que puede

penalizar la ejecución si solo lo utilizamos para ejecutar
pocas sentencias

Programación en Internet – Curso 2008-2009

Sentencias preparadas

• Los valores no definidos se indican son el símbolo

interrogación (?)
interrogación (?)

• Antes de ejecutar la sentencia, se asignan los

valores con el método bind_param()

DLSI - Universidad de Alicante

9

Programación en Internet 2008-2009

Programación en Internet – Curso 2008-2009

Sentencias preparadas

• mysqli_stmt->métodos:

– bind param(): enlaza variables como parámetros de una

_p

()

p

sentencia preparada

– bind_result(): enlaza variables para almacenar el resultado de

una sentencia preparada

– execute(): ejecuta una sentencia preparada
– close(): cierra una sentencia preparada

• mysqli_stmt->propiedades:

– field_count: devuelve el número de columnas de la última

– num_rows: devuelve el número de filas en el resultado
– param_count: devuelve el número de parámetros de la sentencia

consulta

preparada

Programación en Internet – Curso 2008-2009

Sentencias preparadas

<?php

?>

// Abre conexión con la base de datos
// ...
$stmt = $mysqli->prepare("INSERT INTO Productos VALUES (?,
?, ?, ?)");
// i: entero, s: otros tipos, d: double o float
$stmt->bind_param('issd', $codigo, $nombre, $descripcion,
$precio);
$codigo = 123;
$nombre = 'Mk1 20';
$descripcion = 'Televisor Mk1 20 de pantalla plana';
$precio = 1100.50;
$stmt->execute();
$stmt->close();
// Cerrar la conexión
// ...

DLSI - Universidad de Alicante

10
  • Links de descarga
http://lwp-l.com/pdf4604

Comentarios de: mysqli (1)

Imágen de perfil
5 de Diciembre del 2017
estrellaestrellaestrellaestrellaestrella
PERFECTO!
Responder

Comentar...

Nombre
Correo (no se visualiza en la web)
Valoración
Comentarios...
CerrarCerrar
CerrarCerrar
Cerrar

Tienes que ser un usuario registrado para poder insertar imágenes, archivos y/o videos.

Puedes registrarte o validarte desde aquí.

Codigo
Negrita
Subrayado
Tachado
Cursiva
Insertar enlace
Imagen externa
Emoticon
Tabular
Centrar
Titulo
Linea
Disminuir
Aumentar
Vista preliminar
sonreir
dientes
lengua
guiño
enfadado
confundido
llorar
avergonzado
sorprendido
triste
sol
estrella
jarra
camara
taza de cafe
email
beso
bombilla
amor
mal
bien
Es necesario revisar y aceptar las políticas de privacidad