我有以下问题:
public function row2Partner($row){
echo $row->PartnerID;
}
public function main(){
$query = "SELECT PartnerID, PartnerName FROM Partner";
$result = mysql_query($query);
$this->row2Partner(mysql_fetch_object($result));
}
这给了我r ow2Partner()
中的错误:
试图获得非对象的属性
但是$row
是一个对象!如果我这样做
在main函数中回显$row->PartnerID
,它可以工作。
有什么想法吗?
THX, 马丁
答案 0 :(得分:1)
如果您的结果返回多行,则您的对象将是多维的。如果你只想回应第一个问题,我很确定你可以做这样的事情:
public function row2Partner($row){ echo $row[0]->PartnerID; }
如果您只查找一个结果,我也会将查询限制为仅一个...
SELECT PartnerID, PartnerName FROM Partner LIMIT 1
如果要回显所有行(如果是多个)结果,可以执行以下操作:
public function row2Partner($row){
foreach($row as $result) {
echo $result->PartnerID;
}
}
希望有所帮助。
<强> PS 强> 就像旁注一样,我倾向于在处理MySQL结果时使用关联数组 - 这对我来说更有意义。在这种情况下,你只需要这样做:
mysql_fetch_assoc($result)
答案 1 :(得分:0)
你确定mysql_query()已经成功执行了查询,还有实际返回的行吗?可能值得检查一下,例如
//check query executed ok
if ($result = mysql_query($query)) {
//check there is actually a row
if ($row = mysql_fetch_object($result)) {
$this->row2Partner($row);
} else {
//no data
}
} else {
//error
die(mysql_error());
}
答案 2 :(得分:0)
我能想到的最好的事情是你可能需要通过引用而不是值来传递。将您的函数声明更改为
public function row2Partner(&$row)
希望有所帮助, 大卫