2013-04-07 50 views
-3

我的PHP不工作。我沒有得到任何結果:PHP Mysql獲取

我想從MySQL數據庫中獲取信息。該數據庫包含一個其中有四個條目用下面的兩行一個表:PinNumber和SwitchStatus

這裏是在數據庫中的值 PinNumber = 3個 SwitchStatus = 0

PinNumber = 5 SwitchStatus = 0

PinNumber = 6個 SwitchStatus = 0

PinNumber = 9個 SwitchStatus = 0

這是我嘗試沒有成功使用的代碼:

$connect = mysql_connect("localhost", "root", "root"); 
mysql_select_db("QuickFox"); 

$fetch = ("SELECT * FROM Switches")); 

while($row = mysql_fetch_array($fetch)) 
{ 
echo "$row['*']"; 
} 
+0

1. mysql_ *函數被棄用,2.僅在需要時使用fetch_array,否則使用fetch_assoc 3.缺少查詢,4.僅在需要時使用SELECT *,否則SELECT item1,item2 ... – 2013-04-07 00:24:45

回答

2

讓我們打破你的代碼並分析它。

首先,你的問題是你沒有調用mysql_query來獲得你將在mysql_fetch_array函數中使用的MySQL對象。所以你需要實現:

$fetch = mysql_query("SELECT * FROM Switches"); 

這應該清除你的錯誤,並給你結果。現在換其他的東西。你有太多的右括號在

$fetch = ("SELECT * FROM Switches")); 
           ^

但你不需要他們開始。 $fetch = "SELECT * FROM Switches";是可以接受的。此外,你並不需要得到的結果

echo "$row['*']"; 
    ^  ^

使用的echo $row[];是可以接受的,或者您可能需要使用

echo "{$row[]}"; 
    ^ ^

然而,這條線是完全錯誤時使用引號。返回的數組中不會有任何列*。是的,你說SELECT *但數據庫並不真的返回*。您需要使用的列名返回這樣:

echo $row['PinNumber']; 

注意:不要使用MySQL_ *功能,他們被棄用的PHP 5.5的。改用MySQLi_ *函數或PDO。

0

您需要mysql_fetch_array之前調用mysql_query

$fetch = mysql_query("..."); 
while ($row = mysql_fetch_array($fetch)) 
{ 
    var_dump($row); 
} 

注意mysql_*功能已被取消,在新的代碼,我建議使用PDOMySQLi代替(which?

0
$fetch = ("SELECT * FROM Switches")); 
while($row = mysql_fetch_array($fetch)) 
    { 
    echo "$row[*]"; 
    } 

嘗試更改爲這樣:

$fetch = "SELECT * FROM Switches"; 
$fetch = mysql_query($fetch); 
while($row = mysql_fetch_array($fetch)) 
{ 
    echo $row['PinNumber']." = ".$row['SwitchStatus']; 
} 
0
mysql_connect("localhost", "root", "root"); 
    mysql_select_db("QuickFox"); 

    $fetch = mysql_query("SELECT PinNumber,SwitchStatus FROM Switches"); 

    while(list($PinNumber,$SwitchStatus) = mysql_fetch_row($fetch)){ 
    echo "PinNumber = $PinNumber SwitchStatus = $SwitchStatus"; 
    }