Message d'erreur script php pour envoi de req

Résolu/Fermé
ANTHURIUMRE - 29 avril 2011 à 06:55
 ANTHURIUMRE - 29 avril 2011 à 11:13
Bonjour,

Après avoir testé un script php d'envoi de requête en local avec EasyPhp qui fonctionnait correctement je l'ai téléchargé sur un serveur distant. Mais quand je cherche à l'utiliser sur ce serveur distant le message suivant s'affiche :


Warning: mysql_query(): supplied argument is not a valid MySQL-Link resource in /home/clients/Monsite.fr/http/Repertoire/Fichier.php on line 23
Base de données sélectionnée : MaBaseDeDonnée
requête : show tables
Résultats

--------------------------------------------------------------------------------

ERREUR SQL :

--------------------------------------------------------------------------------

Quelqu'un pourrait-il m'aider s'il vous plait. Merci d'avance et Voici ci dessous le script :

<html> 
<head> 
<title>Envoi de requêtes SQL</title> 
</head> 
<body> 
<?php 
/*programme:mysqli_envoi.php 
*Description envoi d'une requête SQL au serveur SQL 
* et affichage des résultats. 
*/ 
if(ini_get("magic_quotes_gpc")=="1") 
{ 
$_POST['query']=stripslashes($_POST['query']); 
}
$host="localhost";
$user="MonNomDutilisateur";
$password="Monpasswd";
/*section d'exécution de la requête et afffichage des réultats*/
if(!empty($_POST['form']))
{
$cxn=mysql_connect($host,$user,$password,
				$_POST['database']);    /*22*/
$result=mysql_query($cxn,$_POST['query']);		/*23*/              
echo"Base de données sélectionnée : <b>{$_POST['database']}</b><br>
requête : <b>{$_POST['query']}</b>
<h3>Résultats</h3><hr>";
if($result==false)
{
echo"<h4>ERREUR SQL : ".mysql_error($cxn)."</h4>";      /*29*/             
}
elseif(@mysql_num_rows($result)==0)
{
echo"<h4>Requête exécutée.
	Aucun résultat envoyé.</h4>";
}
else
{
/*Affiche les résultats*/
echo"<table border='1'><thead><tr>";
$finfo=mysql_fetch_fields($result);
foreach($finfo as $field)
{
echo"<th>".$field->name."</th>";
}
echo"</tr></thead>
	<tbody>";
for ($i=0;$i <mysql_num_rows($result);$i++)
{
echo"<tr>";
$row=mysql_fetch_row($result);
foreach($row as $value)
{
echo"<td>".$value."</td>";
}
echo"</tr>";
}
echo"</tbody></table>";
}
/*Affiche le formulaire avec des boutons après les résultats*/
$query=str_replace("'","%&%",$_POST['query']);
echo"<hr><br>
<form action='{$_SERVER['PHP_SELF']}'method='POST'>
<input type='hidden'name='query' value='query'>                      
<input type='hidden' name='database'
value={$_POST['database']}>
<input type='submit' name='queryButton'
value='Nouvelle requête'>
<input type='submit' name='queryButton'
value='Modifier la requête'>
</form>";
exit();
}
/*Affiche le formulaire et saisie de requête*/
if (@$_POST['queryButton']!="Modifier la requête")
{
$query="";
}
else
{
$query=str_replace("%&%","'",$_POST['query']);
}
?>
<form action="<?php echo $_SERVER['PHP_SELF']?>"
method="POST">
<table>
<tr><td style='text-align:right;font-weight:bold'>
Saisir le nom de la base de données</td>
<td><input type="text" name="database"
value=<?php echo @$_POST['database']?>></td>
</tr>
<tr><td style='text-align:right; font-weight:bold'
valign="top">Saisir la requête SQL</td>
<td><textarea name="query" cols="60"
rows="10"><?php echo $query ?></textarea></td>
</tr>
<tr><td colspan="2" style='text-align:center'>
<input type="submit" value="Valider la requête"><td>
<tr>
</table>
<input type="hidden" name="form" value="yes">
</form>
</body>
</html>


4 réponses

Gremy87 Messages postés 352 Date d'inscription mercredi 19 mai 2010 Statut Membre Dernière intervention 19 mars 2014 38
29 avril 2011 à 09:50
Bonjour,

question bête mais essentiel. ton serveur distant tourne bien avec MySQL?
1
Bonjour Gremy87,

Oui le serveur tourne bien avec MySql. Merci pour ton aide si tu as une réponse.
0
Gremy87 Messages postés 352 Date d'inscription mercredi 19 mai 2010 Statut Membre Dernière intervention 19 mars 2014 38
29 avril 2011 à 10:03
que vaut $cxn apres le connect?

soit une Ressource soit false
0
Bonjour,

Deux choses
Tu n'as pas sélectionné ta base avec mysql_select_db , et

$result=mysql_query($cxn,$_POST['query']);

Tu as inversé l'odre des paramètres, c'est
$result=mysql_query($_POST['query'],$cxn);

(en supposant que ta connexion se passe bien
0
Bonjour Le Père,

Merci pour ta perspicacité. Cela fonctionne. Merci beaucoup à toi et à Gremy87. Mille mercis.
0
Gremy87 Messages postés 352 Date d'inscription mercredi 19 mai 2010 Statut Membre Dernière intervention 19 mars 2014 38
29 avril 2011 à 10:26
effectivement, bien vu ;)
0