2009-04-29 10 views
0

Ich habe dieses seltsame Problem, wo PHP5 Ints aus einer MySql-Datenbank nicht abrufen. Dies ist der Code, den ich habe:PHP Abrufen von Datenproblem

$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); 

Der Code druckt:

UserId:

Benutzername: Carlo

Jeder Vorschlag wird sehr geschätzt!

Antwort

1

Werfen Sie einen Blick auf die Array - Sie haben wahrscheinlich ein Tippfehler oder falsch aktivierten Wort dort irgendwo bekam:

print_r($row); 

Sie alle Schlüssel und Werte Dies zeigt.

1

Versuch dies zu tun:

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

und

var_dump($row['UserId']); 

und die Ausgabe hier einfügen.

0

Sie sind Verbindungszeichenfolge ist falsch, und Sie müssen auch eine ausgewählte db Befehl:

$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; 
} 

Auch überprüfen Sie Tabelle als Spalte UserId zu gewährleisten.

0

Perfekt! Das hat funktioniert, ich hatte ein falsch geschriebenes Wort, es war UserID statt UserId. Normalerweise benenne ich meine ID-Felder in den Datenbanken als "SomethingId", deshalb habe ich das auch nicht gemacht!

Vielen Dank!

+2

Dann müssen Sie akzeptieren, jemand antworten und posten Sie Ihre Antwort statt statt Ihre eigene Frage zu beantworten. –