对于我的生活,我无法弄清楚为什么我的PHP脚本中的以下语句只返回一个对象。它是一个与之通信的mysql服务器,到目前为止我写了这个:
公共函数getCustomerinfoByCompanyID($ itemID){
$stmt = mysqli_prepare($this->connection, "SELECT * FROM $this->tablename where CompanyID=?");
$this->throwExceptionOnError();
mysqli_stmt_bind_param($stmt, 'i', $itemID);
$this->throwExceptionOnError();
mysqli_stmt_execute($stmt);
$this->throwExceptionOnError();
mysqli_stmt_bind_result($stmt, $row->CustID, $row->CompanyID, $row->FirstName, $row->Surname, $row->CellNo, $row->Email);
if(mysqli_stmt_fetch($stmt)) {
return $row;
} else {
return null;
}
据我所知,它应该返回所有具有变量CompanyID的客户。然而,它只是返回第一个客户,而这就是全部,没有别的。
有什么想法吗?
另外,我想做的一件事是连接FirstName和Surname,但我不确定我是否可以在PHP中执行此操作。我还在学习这个。
答案 0 :(得分:3)
应该是:
while( mysqli_stmt_fetch($stmt)) {
$rows[] = $row;
}
答案 1 :(得分:0)
你在第一次调用mysqli_stmt_fetch()后返回,所以当然只有一个对象。 创建一个数组,在while循环中运行mysqli_stmt_fetch()并将所有行添加到数组中,然后返回该数组。
通过示例查看比发布此处更快 http://ca3.php.net/manual/en/mysqli-stmt.bind-result.php