Message d'erreur script php pour envoi de req

Résolu
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

  1. 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.
  2. 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
    1. Bonjour Le Père,

      Merci pour ta perspicacité. Cela fonctionne. Merci beaucoup à toi et à Gremy87. Mille mercis.