2010-04-19 10 views
0

Possible Duplicate:
mysql_fetch_array() expects parameter 1 to be resource, boolean given in selectComment résoudre les problèmes

Quand j'utilise le code ci-dessous, im obtenir cette erreur mysql_fetch_assoc(): Attention: mysql_fetch_assoc(): argument fourni est pas une ressource de résultat MySQL

quand retourner les données, tout le monde peut le réparer? Merci!

<?php 
$mysql_server_name="localhost"; 
$mysql_username=""; 
$mysql_password=""; 
$mysql_database=""; 

$conn=mysql_connect($mysql_server_name, $mysql_username, 
        $mysql_password); 
?> 

<?php 
$result = mysql_query("SELECT * FROM users"); 
$arrays = array(); 
while ($row = mysql_fetch_assoc($result)) { 
    foreach ($row as $key => $val) { 
     if (!array_contains_key($key)) { 
      $arrays[$key] = array(); 
     } 
     $arrays[$key][] = $val; 
    } 
} 
?> 
<script type="text/javascript"> 
<?php 
foreach ($arrays as $key => $val) { 
    print 'var ' . $key . ' = ' . json_encode($val) . ";\r\n"; 
} 
?> 
</script> 
+0

Notez que vous devez imprimer la sortie de 'mysql_error' que lors du développement (http://msdn.microsoft.com/en-us/library/ms995351.aspx#securityerrormessages_topic2). Autre que cela, l'erreur doit être enregistrée où seuls les admins peuvent le lire, et un autre message d'erreur doit être affiché aux utilisateurs. Pour 'SELECT *', lisez http://stackoverflow.com/questions/321299/what-is-the-reason-not-to-use-select. – outis

+0

Bon point @outis c'est pourquoi l'utilisation de 'trigger_error' est suggérée –

Répondre

1

ce n'est pas problème mysql_fetch_assoc mais le problème requête
faire

$sql="SELECT * FROM users"; 
$result = mysql_query($sql) or trigger_error(mysql_error().$sql); 

et voir erreur réelle

+0

Oui, j'ai reçu un message: CHOISISSEZ le nom d'utilisateur FROM utilisateurs, j'ai des utilisateurs de noms de tables, et theres un utilisateur, pourquoi je reçois cette erreur? – sky

+0

@sky pouvez-vous coller le message d'erreur exact ici? On dirait que certains de ses textes sont omis. Pouvez-vous regarder dans la source de la page pour cela? –

+0

Avis: CHOISISSEZ le nom d'utilisateur FROM utilisateurs dans /home/oiweiki1/public_html/yo2.us/error.php à la ligne 14 Voici le message d'erreur – sky

0

Vérifiez les messages d'erreur de MySQL à l'aide mysql_error:

<?php 
$result = mysql_query('SELECT * FROM users'); 
$error = mysql_error(); 
if ($error != '') 
    die($error); 
?> 
+0

die doit mourir. comme il brise HTML et la pratique sale du tout –

0

Habituellement, je fais le lien MySQL e ceci:

$con = mysql_connect("host","user","passwd"); 
if (!$con) 
{ 
    die('Could not connect: ' . mysql_error()); 
} 
+0

en utilisant die est très mauvaise pratique. Au moins 500 erreurs HTTP doivent être envoyées sur le serveur de production au lieu des informations mysql sensibles –

+0

@Shrapnel, merci pour la note. – Young

Questions connexes