WordPress: riparare tramite MySQL i link non funzionanti

Controllando il mio blog che è realizzato con WordPress 3.0.3 mi sono accorto che in alcuni post/articoli c’erano degli indirizzi internet di wikipedia senza http:// questo comportava che se un lettore cliccava sopra al link veniva reindirizzato alla pagina www.marcobruni.info/wordpress/indirizzo che è inesistente, invece di andare sul link giusto a wikipedia.

La “colpa” è di chrome che per comodità accorcia gli indirizzi che uno mette sulla sua barra eliminando http:// ma questo comporta che se uno copia dalla barra e lo incolla ad esempio nel post che sto scrivendo mi creerà un link sbagliato. Per risolvere il problema dei link non funzionati, mi sono collegato al mio spazio di aruba e tramite PhpMyAdmin (che Aruba fornisce per la gestione del database MySQL) ho fatto una query per trovare tutti gli articoli che avevano questo problema:

SELECT * FROM  `wp_posts` 
WHERE `post_content` LIKE '%href="it.wikipedia.org%' AND `post_status` =  'publish'

La query sql in sostanza cerca nella tabella degli articoli (tabella wp_posts) quelli il cui contenuto (il campo post_content) abbia all’interno la stringa href=”it.wikipedia.org (notate senza http://) e che siano articoli pubblicati (il campo`post_status` = ‘publish’).
Infine tramite gli strumenti di PhpMyAdmin ho modificato i post aggiungendo http:// prima di it.wikipedia.org.

Come creare in PHP una tabella in un database MySQL

In questo articolo vedremo come in Php si può creare una tabella di un database MySQL. Prima affronteremo il file config.php in cui ci sono i parametri di connessione al server MySQL e la funzione di php per la connessione e poi affronteremo il file per la creazione della tabella, alla fine del post troverai lo zip con all’interno i 2 file php che puoi scaricare per fare tutte le prove che vuoi.

Leggi tutto “Come creare in PHP una tabella in un database MySQL”

MySQL: escludere dei database dal mysqldump

Mysqldump è un’utility che genera un file ASCII contentente istruzioni SQL (CREATE TABLE, CREATE DATABASE ecc.) che permettono di ricreare completamente un database. Questo metodo permette di utilizzare lo script su qualsiasi piattaforma, ottenendo quindi una soluzione portabile. La seconda importante caratteristica è la flessibilità, modificando lo script prodotto, è possibile il ripristino anche di una sola tabella. Infine mysqldump permette di effetture il dump di un database da remoto.

Esempio:

[root@vagante backup-db]# mysqldump arnaldoz > arnaldoz_dump_db.sql -u root -p  
Enter password: db3mendo  

In questo caso viene eseguito il dump del database arnaldoz generando le relative instruzioni nel file arnaldo_dump_db.sql. E’ necessario comunicare a mysqldump che si utilizzerà l’utente amministratore -u root con la relativa password -p

Mysqldump ha un’opzione per ignorare le tabelle specifiche. Quindi se avete 1.000 tabelle di un database, è possibile dire a mysqldump di salvare tutte le tabelle tranne alcune. Non esiste alcuna opzione per escludere uno o più database. Tuttavia, se si conosce il tool a linea di comando, la soluzione è facile:
In primo luogo, si ottiene l’elenco di tutti i database:

mysql -B -N -e 'show databases' information_schema employees five four mysql one performance_schema six test three two

-B forze modalità batch , mentre-N ottiene il risultato senza le intestazioni.
Ora, diciamo che vogliamo escludere database quattro, cinque e sei. E poiché vogliamo evitare spiacevoli effetti collaterali, anche INFORMATION_SCHEMA e performance_schema. Quindi, abbiamo condotto i dati precedenti attraverso un filtro. Io uso Perl, ma sed o grep avrebbero potuto fare lo stesso un buon lavoro.

mysql -B -N -e 'show databases' | \ perl -ne 'print unless /\b(?:four|five|six|_schema)\b/' dipendenti mysql one test three two

Ora che abbiamo l’elenco dei database di cui abbiamo bisogno, lo passiamo a mysqldump per il backup. Utilizzando xargs convertiamo la lista verticale in orizzontale.

mysql -B -N -e 'show databases' | \ perl -ne 'print unless /\b(?:four|five|six|_schema)\b/' \ xargs echo mysqldump -B mysqldump -B dipendenti mysql one test three two

Tutto qui. Una volta che siete sicuri che sia ciò che si desidera, rimuovere il “echo” dopo xargs, e il comando viene eseguito.

Fonte: openskill.info