Оператор PHP должен возвращать несколько объектов, но возвращает только один - PullRequest
0 голосов
/ 29 февраля 2012

Не могу понять, почему приведенное ниже утверждение в моем 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 и фамилию, но я не уверен, смогу ли я сделать это в PHP. Я все еще учусь этому.

Ответы [ 2 ]

3 голосов
/ 29 февраля 2012

Должно быть:

while( mysqli_stmt_fetch($stmt)) {
   $rows[] = $row;
}
0 голосов
/ 29 февраля 2012

вы возвращаетесь после первого вызова mysqli_stmt_fetch (), поэтому, конечно, будет только один объект.создайте массив, запустите mysqli_stmt_fetch () в цикле while и добавьте все строки в массив, а затем верните массив.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...