11.09.2018 Views

Aprender a desarrollar un sitio Web con PHP y MySQL

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

$base = mysqli_<strong>con</strong>nect("127.0.0.1", "root", "", "_prueba");<br />

if ($base) {<br />

echo ’Conexión realizada.’;<br />

echo ’Información del servidor:’.mysqli_GET_host_info($base).<br />

’’;<br />

$sql = "UPDATE Persona SET Apellidos = ’MORALES’, Edad = 62 WHERE<br />

Apellidos = ’Morales’";<br />

// Ejecución de la <strong>con</strong>sulta<br />

$resultado = mysqli_query($base, $sql);<br />

if ($resultado == FALSE) {<br />

echo "Error en la ejecución de la <strong>con</strong>sulta.";<br />

}<br />

else {<br />

$apellido_persona = mysqli_affected_rows($base);<br />

echo "Apellidos de personas modificadas:".$apellido_persona.".";<br />

}<br />

if (mysqli_close($base)) {<br />

echo ’Des<strong>con</strong>exión realizada.’;<br />

}<br />

else {<br />

echo ’Error en la des<strong>con</strong>exión.’;<br />

}<br />

}<br />

else {<br />

printf(’Error %d : %s.’,mysqli_<strong>con</strong>nect_errno(),<br />

mysqli_<strong>con</strong>nect_error());<br />

}<br />

?><br />

Conexión realizada.<br />

Información del servidor:<strong>MySQL</strong> host info: 127.0.0.1 <strong>con</strong> TCP/IP<br />

Número de personas modificadas:1.<br />

Des<strong>con</strong>exión realizada.<br />

5. Consultas preparadas<br />

a. Introducción<br />

Una <strong>con</strong>sulta preparada se utiliza mucho, ya que tiene varias ventajas. En primer lugar, evita la inyección SQL, ya que no se pueden ejecutar los datos de la <strong>con</strong>sulta.<br />

En seg<strong>un</strong>do lugar, si quiere ejecutar varias veces seguidas <strong>un</strong>a <strong>con</strong>sulta de tipo INSERT <strong>con</strong> distintos valores, no necesita re<strong>con</strong>struir la <strong>con</strong>sulta cada vez. Simplemente<br />

debe <strong>un</strong>ir los nuevos valores y ejecutarla de nuevo. Por lo tanto, <strong>un</strong>a <strong>con</strong>sulta preparada es más segura y a veces más rápida que <strong>un</strong>a <strong>con</strong>sulta no preparada.<br />

Debe tener estos datos:<br />

b. Leer datos<br />

Antes de ejecutar la <strong>con</strong>sulta, debe prepararla, es decir, escribir la <strong>con</strong>sulta sustituyendo los valores por signos de interrogación, que a <strong>con</strong>tinuación se sustituyen por<br />

valores.<br />

La f<strong>un</strong>ción que permite preparar la <strong>con</strong>sulta es mysqli_prepare().<br />

Esta f<strong>un</strong>ción toma como argumentos:<br />

El objeto de <strong>con</strong>exión: objeto que la f<strong>un</strong>ción mysqli_<strong>con</strong>nect() ha devuelto.<br />

La <strong>con</strong>sulta: cadena de caracteres que <strong>con</strong>tiene la <strong>con</strong>sulta SQL <strong>con</strong> los signos de<br />

interrogación.<br />

Esta f<strong>un</strong>ción devuelve <strong>un</strong> objeto mysqli_stmt, que<br />

las f<strong>un</strong>cionesmysqli_stmt_bind_param() y mysqli_stmt_bind_result() utilizan.<br />

La f<strong>un</strong>ción mysqli_stmt_bind_param() permite <strong>un</strong>ir las variables a <strong>un</strong>a <strong>con</strong>sulta SQL.<br />

Esta f<strong>un</strong>ción tiene tres argumentos:<br />

El objeto <strong>con</strong>sulta: resultado que la f<strong>un</strong>ción mysqli_prepare() ha devuelto.<br />

Los tipos: cadena de caracteres que <strong>con</strong>tiene los tipos de datos que pasan como<br />

argumentos en el mismo orden. Los tipos son:<br />

s en las cadenas de caracteres,<br />

i en los números enteros,<br />

d en los números decimales,<br />

b en los blob.<br />

www.FreeLibros.me

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!