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 :
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
-
Bonjour,
question bête mais essentiel. ton serveur distant tourne bien avec MySQL?
-
que vaut $cxn apres le connect?
soit une Ressource soit false
-
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 -
effectivement, bien vu ;)