Ich habe den folgenden Code, der einen Fehler auslöst:
/**
* Custom content function
*
* Get system status from the helpdesk database
*
* @return
* An key => value pairing of systems and their status
*/
function system_status_sjhc_status_check() {
//connection info for the helpdesk database
$helpdeskDB = array(
'database' => 'mydb',
'username' => 'myuser',
'password' => 'mypass',
'host' => 'myhost',
'driver' => 'mysql',
);
Database::addConnectionInfo('helpdeskDB', 'default', $helpdeskDB);
db_set_active('helpdeskDB');
//grab the current light status
$result = db_select('hd_lights', 'l')
->fields('l')
->leftJoin('hd_status', 's', 'l.id = s.id')
->fields('s', array('stamp', 'message'))
->orderBy('`order`', 'ASC')
->execute();
db_set_active(); // without the paramater means set back to the default for the site
return $result;
}
Der Fehler, den ich erhalte, ist:
Schwerwiegender Fehler: Aufruf eines Mitgliedsfunktionsfelds () für ein Nichtobjekt
und es wird auf diese Linie geworfen:
->fields('s', array('stamp', 'message'))
Ich kann nicht herausfinden, was ich falsch gemacht habe, alles sieht für mich in Ordnung aus und der Code läuft ohne den Join und zusätzliche Tabellenfelder einwandfrei.
Irgendwelche Gedanken?
So nehmen Sie an, db_select mit join zu schreiben (in Ihrem Fall leftJoin)
quelle