Exporter une table mysql pour .txt ou .doc fichier à l'aide de PHP
J'ai une table mysql qui conserve un journal des messages que les utilisateurs envoient chaque jour. Ce que je veux faire est d'exporter le journal des messages une fois par jour dans un fichier texte, et je ne suis pas sûr de la façon de le faire. Notre serveur a phpmyadmin, et je peux exporter le tableau dans un fichier texte manuellement, mais je ne sais pas comment faire pour Un) ont phpmyadmin exporter ce fichier automatiquement une fois par jour, ou B) écrire l'exportation dans le code php. Je veux que les fichiers exportés pour être à la disposition des utilisateurs de mon site pour le téléchargement. Le site il est écrit en php. Si il n'y a aucune autre information dont vous avez besoin pour répondre à cette question, laissez-moi savoir!
- CRON/Calendrier de travail pour la commande MySQLdump...
Vous devez vous connecter pour publier un commentaire.
Être prudent sur le déploiement de votre propre, sauf si vous gérez les choses comme NULLES, les jeux de caractères, etc.
Première alternative:
L'data.txt fichier sera écrit sur le serveur MySQL. Le répertoire doit être accessible en écriture par l'uid du processus mysqld. Il ne sera pas remplacer tous les fichiers existants, et nécessite que vous ayez la
FILE
SQL privilège.Deuxième alternative: utiliser mysqldump de sortie de fichier de texte plat (comme @OMG Poneys mentionné):
Cela fonctionne comme
INTO OUTFILE
, il a besoin pour s'exécuter sur l'hôte MySQL, et le répertoire doit être accessible en écriture par le serveur mysqld uid.Troisième option: exécuter la requête avec mysql client et le texte de sortie:
Ce peut être exécuté sur n'importe quel hôte, et ne nécessite pas de privilèges spéciaux ou des autorisations de répertoire. Mais NUL ne peut être traitée comme elle le serait avec mysqldump ou
INTO OUTFILE
.Ce simple script PHP va enregistrer toutes les données dans un tableau .fichier txt. Les enregistrements sont séparés par de nouvelles lignes, et les champs par un caractère de tabulation. Ici, il est:
$fh = fopen('/var/www/downloads/data.txt', 'w');
var_dump($row);
déclaration de quelque part à l'intérieur de la boucle.Bien le principal problème avec ce script, c'est que vous n'avez pas sélectionné une base de données, qui est, à l'aide de "mysql_select_db" avant "mysql_query". Puis enlever le point-virgule de "myTable(;)". Également créer un fichier texte vide dans votre dossier racine, c'est l'endroit où vos données seront stockées.Votre script devrait fonctionner correctement par la suite. Cette solution est pour les futurs utilisateurs qui pourraient avoir besoin de ce script à l'aide de leur conception.
La réponse que j'avais posté plus tôt fonctionneront parfaitement seulement lors de la dernière valeur d'un champ dans une ligne n'est pas égale à toute autre valeur de champ dans cette même ligne.Bcoz la vérification pour la virgule de séparation est basée sur la dernière valeur de champ,maintenant il a changé d'dernier champ de l'indice.
Si u utiliser le code précédent,alors u ne peut pas obtenir la bonne séparation par virgule près la valeur du champ est égale à la dernière valeur d'un champ dans la ligne,d'autres façons que le code est également correct.