Scripts Php pour requete MySql

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : Scripts Php pour requete MySql

par Sékiltoyai » 20 juil. 2008, 20:17

PS: je ne pense pas que
#!/usr/local/bin/php -q
soit indispensable ;)
Exécuté en temps que script shell si…

par chrislabricole » 20 juil. 2008, 15:50

Tu peux aussi lire ça ;)


PS: je ne pense pas que
#!/usr/local/bin/php -q
soit indispensable ;)

par Patriboom » 20 juil. 2008, 15:47

Félicitations.

T'es mieux de mettre "Résolu" à ce POST et d'en ouvrir un nouveau pour soumettre un autre problème. Ça rend les choses plus simples, plus claires et t'as plus de chance d'obtenir réponse et aide. N'oublie pas de mettre des titres significatifs

par CityT » 20 juil. 2008, 15:27

HOURRA !!

Après plein d' errances ( houlàlà, quand j'y pense...), CA MARCHE !!

CONTENT, le gars !! MAGIQUE!!!

Mon p'tit code final:

Code : Tout sélectionner

#!/usr/local/bin/php -q <?php // on se connecte à MySQL $db = mysql_connect('localhost', 'root', 'xxxxx'); // on sélectionne la base mysql_select_db('xxxxx',$db); // on crée la requête SQL $sql = "LOAD DATA INFILE '/tmp/feuilles.txt' INTO TABLE `xxxxx`"; // on envoie la requête $req = mysql_query($sql) or die('Erreur SQL !<br>'.$sql.'<br>'.mysql_error()); echo $query; // on ferme la connexion à mysql mysql_close(); ?>
Et enfin compris l'intérêt des lignes "descriptives"....
Alors je dois un grand MERCI à ceux qui m'ont aidé, et leur souhaite plein de bonnes choses. :D

(Je ne ferme pas le Post tout de suite, des fois que...., comme j'ai l'autre petit script à écrire)

par chrislabricole » 20 juil. 2008, 13:27

Ben quand tu paniques comme ça, déjà, panique pas, il y aura toujours PHPFrance pour t'aider :lol:
Mais si on t'aide pas et que t'arrive à trouver tout seul, c'est encore mieux :)

Donc, au début tu as fourni ce code :
#!/usr/local/bin/php -q  
<?php
    $link = mysql_connect("xx.xxx.x.xxx", "root", "xxxxxx");    
    mysql_select_db("name_db", $link) or die(mysql_error());    
    $query = LOAD DATA INFILE '/tmp/feuilles.txt' INTO TABLE `feuille`;    
    mysql_close($link);
?>
La question c'est Qu'est-ce que $query renvoie ?
C'est simple, pour le savoir, tu fais un :
echo $query;
Et tu vois se qu'il renvoi, avec PHP5, moi, il me renvoie :
Parse error: syntax error, unexpected T_STRING in ...
syntax error ??? bah alors c'est probablement un problème quotes....
donc :
$query = "LOAD DATA INFILE '/tmp/feuilles.txt' INTO TABLE `feuille`"; 
;)

par Sékiltoyai » 20 juil. 2008, 11:01

Retire le return true, tu n'as pas besoin de retourner de valeur au shell, php le fera tout seul… Par ailleurs tu fais ton return avant le mysql_close() ce qui stoppe l'exécution, cela m'étonnerait que cela pose un problème que mysql_close() ne soit pas exécuté mais sait-on jamais. Enfin comment as-tu eu l'erreur, tu as fait un mysql_error() ?

par CityT » 20 juil. 2008, 10:34

Merci à Toi
Bah oui, me rends compte....Nul ! Énonçais la requête sans demander l'éxécution. Pff..
M'enfin, suis pas au bout...Changé mon code en :

Code : Tout sélectionner

#!/usr/local/bin/php -q <?php $link = mysql_connect("xxxxxxx", "root", "xxxxxx"); mysql_select_db("xxxxxx", $link) or die(mysql_error()); $req= mysql_query ("LOAD DATA INFILE '/tmp/feuilles.txt' INTO TABLE xxxxx"); return true; mysql_close($link); ?>
Et maintenant, nouvelle erreur:

Code : Tout sélectionner

Lost connection to MySQL server during query
Je continue de chercher. En tout cas, Merci et bon Week-End

par Sékiltoyai » 19 juil. 2008, 20:02

Euh, déjà la requête c'est une chaîne de caractère donc il faut la quoter.
Ensuite il faut l'exécuter tout de même, avec mysql_query(), parce qu'elle ne le fera pas tout seule. :)

Scripts Php pour requete MySql

par CityT » 19 juil. 2008, 19:19

Bonjour à Tous,
J'ai besoin d'automatiser certaines tâches (pour partir en vacances l'esprit tranquille, oui hum bon...)

-Rechercher des enregistrements dans une base MySql
-Les copier dans une autre

D'après tout ce que j'ai pu lire, le seul moyen est de passer par une tâche Cron, qui fait appel à un script php.

J'ai fait les scripts Mysql suivants:
1:)ENREGISTREMENT DES FEUILLES CHERCHÉES :

Code : Tout sélectionner

SELECT * INTO OUTFILE '/tmp/feuilles.txt' FROM `feuille` WHERE `agence_voyage_id` <7 AND `dates` = DATE_ADD( CURDATE( ) , INTERVAL 1 DAY ) LIMIT 0 , 3000
2:)UPLOAD DU FICHIER :

Code : Tout sélectionner

LOAD DATA INFILE '/tmp/feuilles.txt' INTO TABLE `feuille`
Les 2 scripts fonctionnent dans PhPMyAdmin
Et une petite tache Cron me supprime automatiquement le fichier txt.

Tout çà, çà marche, ouf. Çà c'est fait.

Là ou je transpire depuis 2 jours, c'est dans la fabrication des scripts Php. J'ai tout essayé, à l'endroit, à l'envers, avec des -q, avec des ' et des '' partout, en Francais , en Anglais, rien ne marche. Au mieux, dans mon Webadmin, apres avoir lancé la tâche, j'obtiens le message suivant:
"Exécuter une tâche cron
Sortie de la commande /usr/mes_scripts/scriptimportfichierfeuilles.php ..
Aucune sortie générée"

N'y connaissant pas grand chose en Php ( C'est un métier, çà, dites-donc ! ), j'ai voulu me cantonner à un script simple; par exemple, pour l'import:
#!/usr/local/bin/php -q  
<?php

	$link = mysql_connect("xx.xxx.x.xxx", "root", "xxxxxx");	
	mysql_select_db("name_db", $link) or die(mysql_error());	
	$query = LOAD DATA INFILE '/tmp/feuilles.txt' INTO TABLE `feuille`;

	
	mysql_close($link);
?>

Les droits de tous les fichiers concernés ont été modifiés, et le serveur (dédié) fonctionne sous Redhat (Ovh).

Quitte à me traiter d'âne, une Bonne Âme pourrait-elle au moins me dire si je suis sur la bonne voie (Ah, juste une P'tite erreur quelque part, une p'tite virgule ? ), ou si toute ma procédure est completement tordue (Arghhh !!).

D'avance, Merci de m'avoir lu. Et un Super Merci à ceux qui me re-liront en essayant de trouver ce qui cloche.

Code : Tout sélectionner

- phpMyAdmin SQL Dump -- version 2.7.0-pl2 -- http://www.phpmyadmin.net -- -- Serveur: localhost -- Généré le : Samedi 19 Juillet 2008 à 19:03 -- Version du serveur: 4.1.13 -- Version de PHP: 4.4.4

Code : Tout sélectionner

CREATE TABLE
( Pas bien compris là, :-))