php - 将 mysql_fetch_object() 的结果传递给函数不起作用

标签 php mysql

我有以下问题:

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 是一个对象!如果我这样做 echo $row->PartnerID 在主函数中,它起作用了。

有什么想法吗?

谢谢, 马丁

最佳答案

如果您的结果返回多行,则您的对象将是多维的。如果你只想回应第一个,我很确定你可以做这样的事情:

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; 
    }
}

希望对您有所帮助。

附言 作为旁注,我倾向于在处理 MySQL 结果时使用关联数组——这对我来说更有意义。在这种情况下,您只需这样做:

mysql_fetch_assoc($result)

关于php - 将 mysql_fetch_object() 的结果传递给函数不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/777692/

相关文章:

javascript - 从 jquery POST 数据中选择一个元素

mysql - 如何从 bash 中的 MySQL 查询结果中获取字段

java - JPA 外键 - 如有必要插入新记录?

MYSQL 在一列上选择两个值

html - 如何在html中以特定格式显示sql数据

php - 字段列表中的列 'id' 在 PHP 中不明确

php - 单击“保存”按钮时应用程序崩溃

php - 拉维尔 : 1066 Not unique table/alias

php - 替换所有不在 html 标签中的引号

php - Laravel Form 方法 VS 传统编码