Ejecutando consultas de MySQL desde PHP

Share to social media

Este post es continuación de Limpieza de links erróneos: codificando un PHP

Continuamos elaborando ese programita que nos permita limpiar links erróneos. Hoy le añadiremos unas pocas instrucciones al código que estuvimos viendo en Limpieza de links erróneos: codificando un PHP.

Lo que vamos a hacer es ejecutar una consulta de MySQL para localizar todos los posts que contienen una URL determinada. Para ello, se emplea la función mysql_query a la que se le pasa como parámetro un literal que es la consulta en sí.

No entraremos en detalle a explicar el lenguaje SQL, que es el que nos permite interactuar con una base de datos, pero en pocas palabras diremos que con SELECT indicamos qué campos queremos extraer, con FROM la tabla con la que deseamos operar y con WHERE imponemos las condiciones de búsqueda (en este caso se utiliza el operador LIKE junto con el caracter «%»). Es como si dijéramos: extrae todos los campos de la tabla «wp-posts» (donde se encuentran los posts de una base de datos de WordPress) en aquellos casos en los que el campo «post-content» (el contenido) contenga el literal que se indica entre «%».

La función mysql_query arroja como resultado un array (una tabla indexada de tantas filas como posts existan y tantas columnas como campos tenga la tabla «wp-posts»), que debe tratarse posteriormente mediante la función mysql_fetch_array, o FALSE.

La función mysql_fetch_array devuelve un valor del array o FALSE si no hay más filas. Por eso la condición de la estructura «While» (mientras que) es «$row = mysql_fetch_array($result))». Una condición que realiza varios trabajos a la vez: indexa el array desde su primer elemento hasta el último, introduce cada valor del array en la variable $row y obliga la finalización del bucle que recorre el array cuando ya no hay más filas.

[php]
<?php
$con = mysql_connect("localhost","AAA","BBB");
if (!$con)
{
die(‘Error de conexion: ‘ . mysql_error());
}
else
{
echo "conexion ok";
mysql_select_db("YYY", $con);
$result = mysql_query("SELECT * FROM wp_posts WHERE post_content LIKE ‘%https://www.lanzatu.blog/scripts/view.php?arch=posts0408&articulo=verpermalink&id=200408151%’");
echo "<br />";
while($row = mysql_fetch_array($result))
{
$contenido=$row[‘post_content’];
echo $contenido;
echo "<br />";
}
}
?>
[/php]

Así que para cada valor del array $result, se ejecuta el conjunto de instrucciones del bucle «while». Dichas instrucciones lo que hacen es asignar el valor del campo «post_content» (todo el contenido del post) a la variable $contenido y mostrarlo en pantalla con la sentencia «echo». La sentencia «echo» es capaz de mostrar en pantalla código HTML, por lo que si queremos que exista diferenciación visual entre los contenidos de todos los posts que se han encontrado, hay que añadir un salto de línea («<br />»).

Lo que hemos hecho, como dije en el post anterior, es buscar todos los posts que contienen la URL https://www.lanzatu.blog/scripts/view.php?arch=posts0408&articulo=verpermalink&id=200408151 y mostrarlos en pantalla, si es que existe alguno.

Pruébalo, sustituyendo la URL entre «%» por cualquier literal que quieras buscar. Y recuerda cambiar los valores AAA (usuario), BBB (password) e YYY (nombre de la base de datos) por tus credenciales de la base de datos.

¡Ah! y asegúrate de que posees un backup de tu base de datos de WordPress antes de ejecutar cualquier programa que desarrolles, sobre todo si realiza modificaciones sobre ella (cuestión que veremos en un próximo post).

Resumir con tu IA favorita

Si no ves el prompt autocompletado o ves el de una ejecución anterior (o aparece la página de acceso), el texto ya está copiado. Solo pégalo.

En Blogpocket se promueve un uso ético y responsable de la IA

Deja una respuesta

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

Información básica sobre protección de datos Ver más

  • Responsable: Antonio Cambronero.
  • Finalidad:  Moderar los comentarios.
  • Legitimación:  Por consentimiento del interesado.
  • Destinatarios y encargados de tratamiento:  No se ceden o comunican datos a terceros para prestar este servicio. El Titular ha contratado los servicios de alojamiento web a GreenGeeks que actúa como encargado de tratamiento.
  • Derechos: Acceder, rectificar y suprimir los datos.
  • Información Adicional: Puede consultar la información detallada en la Política de Privacidad.

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.