PHP объект в строку - PullRequest
2 голосов
/ 14 мая 2011

Я потратил 2 часа на поиск других постов в Stack Overflow, касающихся этой проблемы, и они показались мне более сложными, чем мне было нужно.Я попытался выполнить функцию __toString, но не думаю, что сделал это правильно.

Я пытаюсь взять выражение sql для $ personid и преобразовать его в строку, чтобы я мог использовать его в других методах sql,

$personid = $this->db->query('SELECT person_id FROM person');

$fullname = $this->db->query("SELECT person_fname, person_lname FROM person
                          WHERE person_id = '".$personid."';");

$sport = $this->db->query("SELECT sport_name FROM person_sport_rel A1
                        INNER JOIN sport A2 ON A1.sport_id = A2.sport_id
                        WHERE person_Id = '".$personid."';");

Как и в других сообщениях, возникла проблема ... Я получаю сообщение об ошибке:

Object of class CI_DB_mysql_result could not be converted to string

Я попытался добавить конструктор и __toString в классе CI_DB_mysql_result, который был рекомендован дляPHP сайт, но безрезультатно

Ответы [ 2 ]

3 голосов
/ 14 мая 2011

Похоже, что вы используете Codeigniter, чтобы получить результаты запроса, проверьте этот сайт: http://www.codeignitor.com/user_guide/database/results.html

С этой страницы:

$query = $this->db->query("YOUR QUERY");

foreach ($query->result() as $row)
{
   echo $row->title;
   echo $row->name;
   echo $row->body;
}
2 голосов
/ 14 мая 2011

Вы, вероятно, возвращаете кучу идентификаторов, когда выполняете этот запрос:

$personidsQuery = $this->db->query('SELECT person_id FROM person');

, поэтому, когда вы хотите использовать его в новых запросах, это, вероятно, более интересно:

$sql = "SELECT person_fname, person_lname FROM person WHERE person_id = ?";
foreach ($personidsQuery->result() as $row)
{
    $namesQuery = $this->db->query($sql, array($row->person_id));
}

В этом вам поможет руководство пользователя CI: http://www.codeignitor.com/user_guide/database/

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