2009-04-29 7 views
0

J'ai ce problème étrange où PHP5 ne récupère pas les données d'une base de données MySql. Ceci est le code que j'ai:PHP Récupération du problème de données

$db = mysql_connect('XX.XX.XX.XX', 'DBName', 'DBPwd'); 
$query = 'Select * FROM Users WHERE UserName = \'Carlo\''; 
$result = mysql_query($query); 

if(!$result) 
{ 
    echo 'Could not successfuly run query: '.mysql_error(); 
    exit; 
} 

if(mysql_num_rows($result) == 0) 
{ 
    echo '0 results'; 
} 

$row = mysql_fetch_assoc($result); 

echo 'UserId: '.$row['UserId']; // THIS IS THE INT VALUE FROM THE DATABASE 

echo 'UserName: '.$row['UserName']; // THIS IS A STRING VALUE FROM THE DATABASE 

mysql_close($db); 

Les impressions de code:

UserId:

UserName: Carlo

Toute suggestion est grandement appréciée!

Répondre

1

Jetez un oeil à la gamme - vous avez probablement un mot faute de frappe ou mal capitalisé là quelque part:

print_r($row); 

Cela vous montrera toutes les clés et les valeurs.

1

Essayez de faire ceci:

var_dump(array_key_exists('UserId', $row)); 

et

var_dump($row['UserId']); 

coller la sortie ici.

0

vous êtes chaîne de connexion est mauvaise et vous avez aussi besoin d'une commande select db:

$db = mysql_connect('XX.XX.XX.XX', 'user', 'DBPwd'); 
if ($db === false) { 
    trigger_error('Failed to connect to database', E_USER_ERROR); 
    echo 'Unable to connect to database. Please come again later.'; 
    exit; 
} 

if (!mysql_select_db('db_name', $db)) { 
    trigger_error('Failed to selected database', E_USER_ERROR); 
    echo 'Unable to connect to database. Please come again later.'; 
    exit; 
} 

En outre, vérifiez que vous table comme la colonne UserId.

0

Parfait! Cela a fonctionné, j'ai eu un mot mis-majuscule, c'était UserID au lieu de UserId. Je nomme habituellement mes champs d'ID dans les bases de données comme "SomethingId" c'est la raison pour laquelle je n'ai même pas pensé à ça!

Merci beaucoup!

+2

Ensuite, vous aurez besoin d'accepter quelqu'un répondre et poster votre réponse à la place, au lieu de répondre à votre propre question. –

Questions connexes