2012-12-05 71 views
0

我有一些代碼可以迴應出某人的名字,它可以與某些ID一起使用,但不能與其他人一起使用。這裏是代碼:一般調試

$sid = $_SESSION['id']; 
$sql = mysql_query("SELECT * FROM users WHERE id='$sid'"); 
$row = mysql_fetch_array($sql); 
$fname = $row['fname']; 
. 
. 
. 
<?php echo $fname; ?>'s Profile 

任何想法如何這隻能工作一些時間?我正在使用PHP和MySQL。我回應了$ sid,它給出了正確的ID。

+2

在查詢後添加'或die(mysql_error())',針對破損的ID運行,您可能會發現它。另外,一如既往:[請不要在新代碼中使用'mysql_ *函數](http://bit.ly/phpmsql)。他們不再被維護,並且已經開始了棄用過程。 –

+0

好的將更改爲PDO或mysqli。添加了die並且沒有錯誤 – robk27

+0

如果沒有錯誤,那麼爲了確保數組在'fname'索引處有一個值,print_r($ row)'怎麼樣? –

回答

0

您不檢查查詢是否返回任何結果。

首先做一個檢查:

if ($sql) { // the query worked, 
    while($row = mysql_fetch_array($sql)) { 
     $fname = $row['fname']; 
     .... 
    } 
}else { 
    .. there was an error ... 
    echo "Error: ".mysql_error(); 
} 

你可以做一個var_dump($row)看到的內容。

+0

沒有錯誤,但仍然沒有fname。剛剛顯示的配置文件 – robk27

+0

您可以執行'var_dump($ row)'來查看內容。 – Ibu

0

有可能來自數據庫列的值IS包含空字符串或爲NULL。您應該直接使用特定的ID來檢查數據庫,以確定特定的期望。

這會解釋你的結果。