Array to string conversion error
Ich habe eine Abfrage, die ziehen eine Liste von IDs. Diese IDs werden in einem array und ich Suche eine weitere Tabelle mit diesen IDs. Ich habe versucht, mit implode zu machen, diese IDs eine Zeichenfolge, die ich verwenden könnte, die in einer where-Klausel, aber ich bekomme immer diese Fehlermeldung.
Mein aktuelle code:
$query = $this->db->query('
SELECT *
FROM system_scoperights
WHERE user = '. $this->session->userdata('username') .'
');
foreach ($query->result() as $row) {
$scope = $row->site;
$data[] = $scope;
}
$dataScope[] = $data;
$idList = implode(',', $dataScope); <---- Error Line
$where = 'WHERE scope_scopes.sc_ID IN '. $idList .'';
Ich habe versucht, verschiedene Dinge, die ich gefunden auf Foren wie:
$idList = implode(',', array_values($dataScope));
und
$idList = implode(',', join($dataScope));
aber keine dieser Arbeit. (Ich habe noch nie gehört, dass die join-Funktion)
Vielen Dank im Voraus für die Hilfe.
Was ist der Fehler sagen?
Ich dont denke, es ist eine Voraussetzung für das " am Ende der mysql-Abfrage - nur am Ende der Abfrage-string nach dem string-Verkettung! +1 für den Stil der query-string-obwohl, me likey 😉
Ich weiß, Sie brauchen nicht, die beiden '' am Ende ich mag einfach indem Sie es verursachen, es scheint besser organisiert zu mir.
Die Fehlermeldung lautet "Array to string conversion error"
Ich dont denke, es ist eine Voraussetzung für das " am Ende der mysql-Abfrage - nur am Ende der Abfrage-string nach dem string-Verkettung! +1 für den Stil der query-string-obwohl, me likey 😉
Ich weiß, Sie brauchen nicht, die beiden '' am Ende ich mag einfach indem Sie es verursachen, es scheint besser organisiert zu mir.
Die Fehlermeldung lautet "Array to string conversion error"
InformationsquelleAutor Dylan Buth | 2012-07-16
Du musst angemeldet sein, um einen Kommentar abzugeben.
aber
daher
$dataScope
hat eine Reihe innen-array.implode
arbeiten nur auf einer Ebene, so dass, warum Sie diese Fehlermeldung bekommen.Sollten Sie beachten, dass dies ist tatsächlich möglich, in SQL:
was machen den gesamten Bedarf für diesen code.
Ist:
Stimmt, ich tippte
*
in Eile.Danke. Ich werde daneben als Antwort, wenn es erlaubt mir zu.
InformationsquelleAutor Jay
Ich teilweise Zustimmen Jay ' s Antwort...nur die Zeile entfernen:
und verwenden Sie die
$data
variable direkt, da es bereits ein array:Allerdings sollte man auch nutzen ( und ) in Ihrer where-Klausel:
Verwendung von sub-queries in Ihrer where-Klauseln, obwohl Sie Ihren Platz haben, in Zeiten, Kosten eine Menge Aufwand, vor allem mit 'SELECT *'. Nie mehr verlangen, als Sie brauchen, aus Ihrer db-Tabellen 🙂
InformationsquelleAutor lerxstrulz