我有以下问题:
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));
}这给出了row2Partner()中的错误:尝试获取非对象的属性
但是$row是一个对象!如果我在main函数中回显$row->PartnerID,它就可以工作。
有什么想法吗?
Thx马丁
发布于 2009-04-22 15:15:02
如果您的结果返回多行,则您的对象将是多维的。我非常确定,如果你只想回应第一个,你可以做这样的事情:
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)发布于 2009-04-22 15:15:54
您确定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());
}发布于 2009-04-22 15:16:01
我能想到的最好的事情是,你可能需要通过引用来传递,而不是通过值。将函数声明更改为
public function row2Partner(&$row)希望这能有所帮助,大卫
https://stackoverflow.com/questions/777692
复制相似问题