1

可能重复:
当我将 print_r() 应用于 PHP 中的数组时,为什么会得到“Resource id #4”?

请原谅这个简单的问题,但是我是 SQL 和 PHP 的新手。很简单,我试图获取一个单元格的值,我知道它所在的列以及它所在的行,因此我可以在一个简单的减法问题中使用该值。这是我所拥有的:

$outtime = mysql_query("SELECT `Event1CheckOut1`
    FROM attendance
    WHERE ID = '1234'");

$intime = mysql_query("SELECT `Event1CheckIn1`
    FROM attendance
    WHERE ID = '1234'");

$dur = $outtime - $intime;

使用 echo 它将第一个结果返回为“资源 id #4”。做一些研究,我认为这可能是因为它返回给我一个结果表,而不仅仅是一个值。值得注意的是,我试图获取的值是 24 小时格式的时间。

4

2 回答 2

0

您需要遍历结果集

$outtimeR = mysql_query("SELECT `Event1CheckOut1`
    FROM attendance
    WHERE ID = '1234'");
while($row = mysql_fetch_assoc($outtimeR )){
  $outtime = $row['Event1CheckOut1']; 
}

$intimeR = mysql_query("SELECT `Event1CheckIn1`
    FROM attendance
    WHERE ID = '1234'");

while($row = mysql_fetch_assoc($intimeR )){
  $intime = $row['Event1CheckIn1']; 
}

$dur = $outtime - $intime;
于 2012-10-23T03:20:11.047 回答
0

使用反引号而不是单引号来转义列/表名称:

SELECT `Event1CheckIn1` FROM `attendance` WHERE ID='1234'

另外,请不要将mysql_*函数用于新代码。它们不再被维护并且社区已经开始了弃用过程。看到红框了吗?相反,您应该了解准备好的语句并使用PDOMySQLi。如果你不能决定,这篇文章将有助于选择。如果你想学习,这里有一个很好的 PDO 教程

于 2012-10-23T02:50:46.443 回答