2016-08-24 1 views
0

Wenn ich meine gebacken Tabelle (WampServer MySQL-Datenbank) laufen, bekomme ich diesen Fehler:Fehler: SQLSTATE [42S22]: Column nicht gefunden: 1054

Error: SQLSTATE[42S22]: Column not found: 1054 Unknown column 'Users.user_id' in 'on clause'

If you are using SQL keywords as table column names, you can enable identifier quoting for your database connection in config/app.php.

SQL Query:

SELECT `Bookmarks`.`id` AS `Bookmarks__id`, 
     `Bookmarks`.`user_id` AS `Bookmarks__user_id`, 
     `Bookmarks`.`title` AS `Bookmarks__title`, 
     `Bookmarks`.`description` AS `Bookmarks__description`, 
     `Bookmarks`.`url` AS `Bookmarks__url`, 
     `Bookmarks`.`created` AS `Bookmarks__created`, 
     `Bookmarks`.`modified` AS `Bookmarks__modified`, 
     `Users`.`id` AS `Users__id`, 
     `Users`.`email` AS `Users__email`, 
     `Users`.`password` AS `Users__password`, 
     `Users`.`created` AS `Users__created`, 
     `Users`.`modified` AS `Users__modified` 
FROM `bookmarks` `Bookmarks` 
    INNER JOIN `users` `Users` ON 
      `Users`.`user_id` = (`Bookmarks`.`user_id`) 
LIMIT 20 OFFSET 0 

Wenn Sie diese Fehlermeldung anpassen möchten, erstellen Sie src\Template\Error\pdo_error.ctp.

+2

ändern es zu 'Users.id' das ist, was die Spalte – RiggsFolly

+0

genannt wird und warum fügen Sie runden Klammern für' ('Bookmarks'.'user_id')' sie dienen keinem Zweck – RiggsFolly

+0

@ RiggsFolly Dies ist eine CakePHP-Frage. CakePHP verwendet einen Abfrage-Generator, der dieses spezifische SQL erzeugt, so dass das OP nicht zu viel Einfluss auf Dinge wie Klammern hat. Manchmal gibt es überflüssige zusätzliche Klammern, weil der Compiler nicht extra prüft, ob sie technisch erforderlich sind. – ndm

Antwort

1

In Ihrer Benutzertabelle ist die primäre ID id nicht user_id; Deshalb erhalten Sie einen Fehler. Diese Abfrage statt:

SELECT `Bookmarks`.`id` AS `Bookmarks__id`, 
     `Bookmarks`.`user_id` AS `Bookmarks__user_id`, 
     `Bookmarks`.`title` AS `Bookmarks__title`, 
     `Bookmarks`.`description` AS `Bookmarks__description`, 
     `Bookmarks`.`url` AS `Bookmarks__url`, 
     `Bookmarks`.`created` AS `Bookmarks__created`, 
     `Bookmarks`.`modified` AS `Bookmarks__modified`, 
     `Users`.`id` AS `Users__id`, 
     `Users`.`email` AS `Users__email`, 
     `Users`.`password` AS `Users__password`, 
     `Users`.`created` AS `Users__created`, 
     `Users`.`modified` AS `Users__modified` 
FROM `bookmarks` `Bookmarks` 
    INNER JOIN `users` `Users` ON 
      `Users`.`id` = `Bookmarks`.`user_id` 
LIMIT 20 OFFSET 0 
+0

Ich denke, das ist, was ich 10 Minuten zuvor in einem einfachen Kommentar – RiggsFolly

+0

gesagt habe Ich sehe, dass Sie auch meinen Kommentar zu den Klammern abgeholt. – RiggsFolly

+0

Ich nehme an, ich könnte Ihnen auch eine positive Bewertung geben, da Sie so gründlich darin waren, beide in eine Antwort zu verwandeln, und der Fragesteller wird sich wahrscheinlich nicht darum kümmern, da sie schon lange weg sind. – RiggsFolly

Verwandte Themen