-3

我的 PHP 不工作。结果我什么也没得到:

我正在尝试从 MySQL 数据库中获取信息。该数据库包含一个表,其中包含四个条目,其中包含以下两行:PinNumber 和 SwitchStatus

这是数据库中的值 PinNumber = 3 SwitchStatus = 0

PinNumber = 5 开关状态 = 0

PinNumber = 6 开关状态 = 0

PinNumber = 9 开关状态 = 0

这是我尝试使用但没有成功的代码:

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

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

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

4 回答 4

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。

于 2013-04-07T00:24:57.137 回答
0

你需要先mysql_query打电话mysql_fetch_array

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

请注意,mysql_*函数已被弃用,在新代码中我建议改用PDOMySQLi哪个?

于 2013-04-07T00:02:29.520 回答
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'];
}
于 2013-04-07T00:02:50.647 回答
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";   
  }
于 2013-04-07T00:14:33.417 回答