2016-11-26 3 views
0

Ich versuche, eine Tabelle basierend auf Sitzungsbenutzername anzuzeigen, aber ich erhalte den folgenden Fehler. Wenn es id es funktioniert, aber wenn es username es ist nichtLaravel - Wie Sitzungsbenutzername in Abfrage verwenden

SELECT tb_list.* FROM tb_list 
WHERE myusername = ".Session::get('username')." 

QueryException in Connection.php Linie 662: SQLSTATE [42000]: Syntaxfehler oder Zugriffsverletzung: 1064 Sie haben einen Fehler in Ihrer SQL Syntax; Überprüfen Sie das Handbuch, das Ihrer MySQL-Serverversion entspricht, für die richtige Syntax in der Nähe von 'ORDER BY id asc LIMIT 0, 10' in Zeile 2 (SQL: SELECT tb_list. FROM tb_list WHERE username = ORDER BY id asc LIMIT 0, 10) *

Vielen Dank im Voraus

sagen lässt die Benutzersitzung Besitzer John

Table with NO session 
WHERE tb_list.task_id IS NOT NULL 
+---------+----------+-------------+-----------------+ 
| task_id | username | some_data | some_time | 
+---------+----------+-------------+-----------------+ 
| 1 | john | some data | 2015-02-29 1 pm | 
| 2 | jack | some data | 2015-02-29 2 pm | 
| 3 | john | some data | 2015-02-29 3 pm | 
| 4 | bill | some data | 2015-02-29 4 pm | 
+---------+----------+-------------+-----------------+ 

Table with john's session 
WHERE username=".Session::get('username')." 
+---------+----------+-------------+-----------------+ 
| task_id | username | some_data | some_time | 
+---------+----------+-------------+-----------------+ 
| 1 | john | some data | 2015-02-29 1 pm | 
| 3 | john | some data | 2015-02-29 3 pm | 
+---------+----------+-------------+-----------------+ 
+1

Warum versuchen Sie, * aus der Tabelle zu bekommen und versuchen Sie für eingeloggte Benutzer? Wenn ja, müssen Sie nicht nur dd (Auth :: user()) abfragen und alle Informationen des angemeldeten Benutzers erhalten. –

+0

Es wird angezeigt, Zeilen, die den gleichen Benutzernamen mit dem Sitzungseigner enthält – Selim

+0

So suchen Sie nicht mit dem Sitzungsbesitzer Zeile? –

Antwort

0

ist ich denke, es liegt daran, dass Sie einzelne fehlen quotes.When Sie einen String-Wert in einer sQL-Abfrage-Anweisung übergeben Sie müssen einfache Anführungszeichen setzen. Zum Beispiel

SELECT tb_list.* FROM tb_list WHERE myusername = '".Session::get('username')."';

versuchen diese.

+0

Ich habe deins versucht. Jetzt wird kein Fehler angezeigt, aber die Tabelle ist leer. – Selim

+0

vielleicht sollten Sie versuchen echo Session :: get ('username'); –

+0

Ich habe das versucht und ausgearbeitet. return "WHERE username = '" .Auth :: user() -> Benutzername. "'"; – Selim

0
return " WHERE username = '".Auth::user()->username."' "; 

Dies funktionierte.