【发布时间】:2012-12-04 22:22:26
【问题描述】:
我正在尝试获取 MySQL 结果行并将其传递给函数进行处理,但该行没有通过。我假设这是因为实际行作为对象返回并且对象无法传递给函数?
E.G
function ProcessResult($TestID,$Row){
global $ResultArray;
$ResultArray["Sub" . $TestID] = $Row["Foo"] - $Row["Bar"];
$ResultArray["Add" . $TestID] = $Row["Foo"] + $Row["Bar"];
}
$SQL = "SELECT TestID,Foo,Bar FROM TestResults WHERE TestDate !='0000-00-00 00:00:00'";
$Result= mysql_query($SQL$con);
if(!$Result){
// SQL Failed
echo "Couldn't find how many tests to get";
}else{
$nRows = mysql_num_rows($Result);
for ($i=0;$i<$nRows;$i++)
{
$Row = mysql_fetch_assoc($Result);
$TestID = $Row[TestID];
ProcessResult($TestID,$Row);
}
}
我需要的是填充了来自 MySQL 查询的大量数据的 $ResultArray。这不是我的实际应用程序(我知道对于显示的内容没有必要这样做),但将结果传递给函数的原理是相同的。
这真的可以做一些吗?
丹
【问题讨论】:
-
不推荐使用 MySQL 扩展来编写新代码。相反,应该使用mysqli 或PDO_MySQL 扩展名。在选择 MySQL API 时,另请参阅 MySQL API Overview 以获得更多帮助。
-
@DC_ 是对的。反正行不通过是什么意思?
-
...and objects can't get passed to function?对象肯定可以传递给函数。顺便说一句,它们是通过引用传递的,但它们仍然被传递。 -
您能否将两个
var_dump(例如var_dump($Row);)的结果相加,一个在ProcessResult之前,另一个在函数ProcessResult 内? -
mysql_query($SQL$con);应该是mysql_query($SQL,$con);首先是语法错误。不确定这是否会影响您的程序,或者只是这里的错字