2010-04-07 6 views
1

Voici mon erreur:erreur de ressource de paramètres MySQL

Attention: mysql_query() attend le paramètre 2 être ressource, null donnée ...

Cela fait référence à la ligne 23 de mon code qui est:

$result = mysql_query($sql, $connection) 

Tout mon code requête ressemble à ceci:

$query = "SELECT * from users WHERE userid='".intval($_SESSION['SESS_USERID'])."'"; 
       $result = mysql_query($query, $connection) 
       or die ("Couldn't perform query $query <br />".mysql_error()); 

       $row = mysql_fetch_array($result); 

Je n'ai pas la moindre idée ce qui a happpene d ici. Tout ce que je voulais faire était d'afficher la valeur du nom complet des utilisateurs dans la section en-tête de ma page Web. Je suis donc fournir en sortie ce code immédiatement après pour essayer de parvenir:

echo 'Hello '; echo $row['fullname']; 

Avant ce changement, je l'avais fonctionne parfaitement, où la variable de session fullname a été repris $ _SESSION [ « SESS_NAME »]. Cependant, parce que mon utilisateur peut mettre à jour ses informations (y compris leur nom), je voulais que le nom affiché dans l'en-tête soit mis à jour en conséquence, et n'affiche pas la valeur de la session.

+0

double possible de [Attention: mysql_fetch_ * attend le paramètre 1 pour être erreur ressource donnée, booléen] (http://stackoverflow.com/questions/11674312/warning-mysql-fetch-expects-parameter-1 -to-be-resource-boolean-given-error) –

Répondre

3

Votre variable d'erreur $connection est NULL à laquelle se réfère votre message d'erreur. La raison est que vous n'avez pas appelé mysql_connect. Une fois appelé, il vous affectera une ressource où vous pouvez la définir sur la variable $connection, étant ainsi non nulle.

À titre d'exemple:

$connection = mysql_connect('localhost', 'mysql_user', 'mysql_password'); 
// now $connection has a resource that you can pass to mysql_query 
$query = "SELECT * from users WHERE userid='". 
             intval($_SESSION['SESS_USERID'])."'"; 
$result = mysql_query($query, $connection) 
+0

Merci, je n'avais pas réalisé que j'avais besoin de la connexion parce qu'avant j'utilisais simplement la session pour récupérer les données ... mais maintenant avec les informations provenant de la base de données, J'ai simplement fait un Yvonne

+0

Pas un problème, à tout moment, heureux que je puisse aider. –

0

Vous avez deux façons de le faire, vous devez utiliser mysql_connect pour vous connecter à votre base de données, vous pouvez passer à ce mysql_query si vous le désirez, si vous ne réussissez pas à quoi que ce soit mysql_query PHP utilise le dernier lien ouvert de mysql_connect

$conn = mysql_connect("localhost", "mysql_user", "mysql_password"); 

$sql = "SELECT id as userid, fullname, userstatus 
     FROM sometable 
     WHERE userstatus = 1"; 

$result = mysql_query($sql); 

Avez-vous connecté à votre base de données? Si oui, montrez ce code aussi.

Pour l'instant, essayez de retirer la variable $connection, comme ceci:

$result = mysql_query($query); 

Et voir où cela vous mène.

0

connexion $ est attribuée la valeur de la connexion base de données identifiant de ressource. Vous n'avez pas cela dans votre script, donc la valeur de $ connection est NULL, et c'est pourquoi vous obtenez l'erreur. Vous devez vous connecter à la base de données avant d'utiliser mysql_query(). Vous devriez être d'accord après ça.

0

que vous devez faire:

$connection=mysql_connect('host','user','pass'); 
if($connection === false) { 
echo "Error in connection mysql_error()"; 
} 
1

comprennent les connexions MySQL sur votre fichier de classe, par exemple:

connexions/mysql.php

<? 
$hostname_MySQL = "localhost"; 
$database_MySQL = "database"; 
$username_MySQL = "user"; 
$password_MySQL = "password"; 

$MySQL = mysql_pconnect($hostname_MySQL, $username_MySQL, $password_MySQL) or trigger_error(mysql_error(),E_USER_ERROR); 
mysql_select_db($database_MySQL,$MySQL); 
?> 

classe.php

<? 
include "Connections/MySQL.php"; 
class utils { 
    public function myFunction() 
     { 
     global $MySQL; 
     $sql = "select * from table"; 
     $rs = mysql_query($sql, $MySQL) or die(mysql_error()); 
     $filas = mysql_fetch_assoc($rs); 
     $totalFilas = mysql_num_rows($rs); 
     ... 
     } 
    } 
?>