MyBB.de Forum
Query spricht falsche Tabelle an - Druckversion

+- MyBB.de Forum (https://www.mybb.de/forum)
+-- Forum: Anpassungen (https://www.mybb.de/forum/forum-47.html)
+--- Forum: Plugin-Entwicklung (https://www.mybb.de/forum/forum-74.html)
+--- Thema: Query spricht falsche Tabelle an (/thread-36708.html)



Query spricht falsche Tabelle an - itsmeJAY - 24.08.2019

Schönen Tag zusammen,

ich habe ein Plugin entwickelt für einen Benutzer ganz individuell und das Plugin gerade für denjenigen erweitert -> bis zur Erweiterung hat auch alles funktioniert. In der Erweiterung wurde lediglich ein Query angepasst. 

In meinem Testforum lokal läuft es und auch in meinem Live-Test-Forum (online) läuft es ohne erkennbare Probleme. Bei dem User allerdings erscheint folgender SQL Fehler:

Code:
MyBB has experienced an internal SQL error and cannot continue.

SQL Error:
    1146 - Table 'uzbroifo_mybb739.mybb_posts' doesn't exist
Query:
    SELECT COUNT(p.pid) FROM mybb_posts p INNER JOIN mybb_threads t ON p.tid = t.tid WHERE p.uid != t.uid AND p.uid =1 AND p.fid IN (91,31)

Please contact the MyBB Group for technical support.

Wie im Query gesehen werden kann, spreche ich NIE irgendeine Tabelle namens "uzbroifo_mybb739.mybb_posts" an. Wenn der Benutzer mein Plugin deaktiviert klappt wieder alles. Kann sich jemand aus irgendeinem Grund erklären weshalb MyBB solch eine Fehlermeldung schmeißt obwohl ich diese Tabelle im Query nicht anspreche? 

Sehr merkwürdig... Der Benutzer hatte auch alle eigene Plugins deaktiviert und es hat trotzdem nicht funktioniert. Der Fehler verschwindet erst, nachdem er mein Plugin deaktiviert.  Wenn er die alte Version des Plugins nimmt (ohne den angepassten Query mit einem JOIN) funktioniert es auch wieder. Also entweder habe ich etwas im Query falsch gemacht - oder ich stehe hier komplett auf dem Schlauch. Big Grin

Hier mal der Query im PHP:

PHP-Code:
$userid $mybb->user['uid'];
$queryCounting $db->write_query("SELECT COUNT(p.pid)
FROM mybb_posts p
INNER JOIN mybb_threads t
ON p.tid = t.tid
WHERE p.uid != t.uid 
AND p.uid =" 
$userid "
AND p.fid IN (" 
$search_in ")
"
);

$countedposts $db->fetch_array($queryCounting); 

Vielleicht hat ja jemand eine Idee? In meinen frischen Installationen klappt es. Sehr merkwürdig. Und selbst wenn ein anderes Plugin (fremdes Plugin) dafür verantwortlich ist, was hat mein Query damit zutun?


RE: Query spricht falsche Tabelle an - StefanT - 24.08.2019

(24.08.2019, 12:17)itsmeJAY schrieb: Wie im Query gesehen werden kann, spreche ich NIE irgendeine Tabelle namens "uzbroifo_mybb739.mybb_posts" an. Wenn der Benutzer mein Plugin deaktiviert klappt wieder alles. Kann sich jemand aus irgendeinem Grund erklären weshalb MyBB solch eine Fehlermeldung schmeißt obwohl ich diese Tabelle im Query nicht anspreche? 
MySQL gibt bei Fehlermeldung in der Regel Datenbank und Tabelle in dieser Notation an. Die Datenbank wird hier auch nicht das Problem sein.
(24.08.2019, 12:17)itsmeJAY schrieb:
PHP-Code:
$userid $mybb->user['uid'];
$queryCounting $db->write_query("SELECT COUNT(p.pid)
FROM mybb_posts p
INNER JOIN mybb_threads t
ON p.tid = t.tid
WHERE p.uid != t.uid 
AND p.uid =" 
$userid "
AND p.fid IN (" 
$search_in ")
"
);

$countedposts $db->fetch_array($queryCounting); 
Offensichtlich beachtest du hier das Tabellen-Präfix nicht.


RE: Query spricht falsche Tabelle an - itsmeJAY - 24.08.2019

Danke erstmal für die Antwort.

Ich beachte doch mybb als Präfix? Oder meinst du ich sollte stattdessen die Konstante TABLE_PREFIX nehmen? Wo soll da denn der Unterschied sein?

Bei mir in der Testversion klappt es ja auch ohne die Konstante. Es kann ja sein dass MySQL bei Fehlermeldungen Datenbank und Tabelle angezeigt. Aber trotzdem müsste mybb_posts doch vorhanden sein in der DB? Hmmm...


RE: Query spricht falsche Tabelle an - [ExiTuS] - 24.08.2019

Die Tabelle heißt nicht "mybb_posts"!
Wie Stefan schon festgestellt hat, wurde ein anderes Präfix gewählt.
Benutze also besser die Variable:

SELECT ... FROM ".TABLE_PREFIX."_posts ...

[ExiTuS]


RE: Query spricht falsche Tabelle an - itsmeJAY - 24.08.2019

Danke erstmal. Versuche ich gleich mal. Dürfte trotzdem komisch sein, denn die vorherige Version des Plugins funktionierte auch mit direkten Zugriff auf mybb_posts (nur halt ohne join).

Aber ich berichte sobald getestet. Danke


RE: Query spricht falsche Tabelle an - StefanT - 24.08.2019

(24.08.2019, 12:54)itsmeJAY schrieb: Wo soll da denn der Unterschied sein?
Das Präfix kann bei der Installation frei gewählt werden. Wink


RE: Query spricht falsche Tabelle an - itsmeJAY - 24.08.2019

Ich liege gerade am See und mir ist aufgefallen das ich in der vorherigen Version die simple select Methode genommen habe. War also klar das es damit funktionierte. Ich änder das gleich mal ab und bin guter Dinge das es dann funktioniert. Danke euch Big Grin