Beiträge: 328
Themen: 93
Registriert seit: 21.02.2009
Hi,
ich habe den Ajax Chat für MyBB auf meinem Testforum installiert.
Wenn ich nun die Domain/chat aufrufe kommt folgender Fehler:
Query: SELECT userID, userName, userRole, channel, UNIX_TIMESTAMP(dateTime) AS timeStamp, ip FROM ajax_chat_online ORDER BY userName; Error-Report: Error-Code:
Kann mir wer sagen woran das liegt?
Beiträge: 18.383
Themen: 257
Registriert seit: 09.02.2005
Ist das die komplette Fehlermeldung? Diese sagt leider nicht viel aus, da der interessantere Teil fehlt.
Gruß,
Michael
Support erfolgt NUR im Forum!
Bitte gelöste Themen als "erledigt" markieren.
Beiträge mit mangelhafter Rechtschreibung/Grammatik werden kommentarlos gelöscht.
Beiträge: 451
Themen: 25
Registriert seit: 14.02.2009
MyBB-Version: 1.4.4
Hast du auch die benötigten Tabellen für den Ajax-Chat angelegt?!
Dies machst du indem du die Datei /chat/install.php aufrufst.
Sollte das nicht funktionieren, dann führe das SQL-Statement "händisch" über phpmyadmin aus.
Code: DROP TABLE IF EXISTS ajax_chat_online;
CREATE TABLE ajax_chat_online (
userID INT(11) NOT NULL,
userName VARCHAR(64) NOT NULL,
userRole INT(1) NOT NULL,
channel INT(11) NOT NULL,
dateTime DATETIME NOT NULL,
ip VARBINARY(16) NOT NULL
) DEFAULT CHARSET=utf8 COLLATE=utf8_bin;
DROP TABLE IF EXISTS ajax_chat_messages;
CREATE TABLE ajax_chat_messages (
id INT(11) NOT NULL AUTO_INCREMENT,
userID INT(11) NOT NULL,
userName VARCHAR(64) NOT NULL,
userRole INT(1) NOT NULL,
channel INT(11) NOT NULL,
dateTime DATETIME NOT NULL,
ip VARBINARY(16) NOT NULL,
text TEXT,
PRIMARY KEY (id)
) DEFAULT CHARSET=utf8 COLLATE=utf8_bin;
DROP TABLE IF EXISTS ajax_chat_bans;
CREATE TABLE ajax_chat_bans (
userID INT(11) NOT NULL,
userName VARCHAR(64) NOT NULL,
dateTime DATETIME NOT NULL,
ip VARBINARY(16) NOT NULL
) DEFAULT CHARSET=utf8 COLLATE=utf8_bin;
DROP TABLE IF EXISTS ajax_chat_invitations;
CREATE TABLE ajax_chat_invitations (
userID INT(11) NOT NULL,
channel INT(11) NOT NULL,
dateTime DATETIME NOT NULL
) DEFAULT CHARSET=utf8 COLLATE=utf8_bin;
MfG Megaleecher
Höre nie auf besser zu werden, weil dann hast du aufgehört gut zu sein.
Beiträge: 328
Themen: 93
Registriert seit: 21.02.2009
So habe den Befehl jetzt ausgeführt. Nun kommt folgende Meldung:
Query: SELECT userID, userName, userRole, channel, UNIX_TIMESTAMP(dateTime) AS timeStamp, ip FROM ajax_chat_online ORDER BY userName; Error-Report: Error-Code:
Beiträge: 9.560
Themen: 197
Registriert seit: 27.12.2007
MyBB-Version: 1.8
Das ist immer noch die selbe (vermutlich unvollständige) Fehlermeldung.
(16.08.2010, 21:57)Michael schrieb: Ist das die komplette Fehlermeldung? Diese sagt leider nicht viel aus, da der interessantere Teil fehlt.
Hallo,
die Fehlermeldung ist tatsächlich vollständig so, ohne weitere Angaben. Die meisten Ursachen sind entweder, dass die Strings in der config.php weggelassen worden snd, oder das PW oder der Datenbankname einen Bindestrich oder Sonderzeichen enthalten hatten. Darauf reagiert der Chat allergisch.
config sollte so aussehen:
// Database connection values:
$config['dbConnection'] = array();
// Database hostname:
$config['dbConnection']['host'] = 'localhost';
// Database username:
$config['dbConnection']['user'] = 'xxxxxxxx';
// Database password:
$config['dbConnection']['pass'] = 'xxxxxxxxxx';
// Database name:
$config['dbConnection']['name'] = 'xxxxxxxx';
// Database type:
$config['dbConnection']['type'] = 'MySQL';
// Database link:
$config['dbConnection']['link'] = null;
und bei dem Datenbanknamen und beim PW keine Sonderzeichen (auch keine Bindestriche) einsetzen!
Leider schon zu lange her, dass ich den mal integriert hatte, aber den selben Fehler hatte ich schon mal wegbekommen. Mehr fällt mir aktuell leider nicht auf Anhieb ein, sorry...
Beiträge: 104
Themen: 11
Registriert seit: 14.05.2006
MyBB-Version: 1.6.3
Hallo,
ich hänge mich mal einfach dran.
Wollte auch den Ajax-Chat testen,habe die config.php entsprechend geändert und die install.php aufgerufen.
Die vier Tabellen wurden angelegt und die install.php habe ich danach gelöscht.
Aufruf des Chats:
Es erscheint das Fenster mit Benutzernamen und Passwort wo nun eigentlich mein
Nickname automatisch erscheinen sollte.
Gebe ich Nick und Passwort ein erscheint Ungültiger Benutzername.
Lasse ich die Felder leer und entere, krieg ich folgende Fehlermeldung:
Query: SELECT userID, userName, userRole, channel, UNIX_TIMESTAMP(dateTime) AS timeStamp, ip FROM xxxxxxxxxxx-2.ajax_chat_online ORDER BY userName; Error-Report: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'xxxxxxxxxxx-2.ajax_chat_online ORDER BY userName' at line 9 Error-Code: 1064
@axxis............. der Datenbankname einen Bindestrich oder Sonderzeichen enthält. Darauf reagiert der Chat allergisch.
Mein Datenbankname enthält einen Bindestrich,aber offensichtlich hat er sie gefunden ,denn die 4 Tabellen wurden schliesslich angelegt.
Kann man nicht auch in der config.php einen direkten Link zur User-Tabelle setzen,
bzw.wie müsste der aussehen?
// Database link:
$config['dbConnection']['link'] = null;
Kann jemand weiterhelfen?
Gruss coppeliusfan
COPPELIUS HILFT!!
Beiträge: 1
Themen: 0
Registriert seit: 02.05.2012
11.03.2013, 10:16
(Dieser Beitrag wurde zuletzt bearbeitet: 11.03.2013, 10:26 von SundayAG.)
Hallo zusammen,
ich muss nochmal hier anhaken. Habe schon gesucht und gesucht ... das gefundene hat mir leider nicht weitergeholfen. Vielleicht bin ich auch einfach nur zu dösig!
Die im vorigen Beitrag beschriebene Fehlermeldung kommt bei mir genau so wie beschrieben. Datenbankname ist natürlich ein anderer aber ebenfalls mit Bindestrich.
Kann es daran liegen? und wenn ja , welche Dateien in welchem Verzeichnis muss ich ändern/anpassen.
Ich hoffe mir kann noch geholfen werden ;-)
P.S. MyBB Version ist 1.6.9
Gruß
Sunday
Sooo und nochmal ich ;-)
Also doch nicht zu dösig - zumindest nicht zum lesen ;-)
In einem anderen Forum kam folgender Hinweis ! :
Zitat:Du hast wohl einen Bindestrich (`-`) in deinem Datenbank-Namen und bist damit tatsächlich über einen Bug im AJAX-Chat gestolpert. Das Problem ist, dass die Bezeichner für Datenbanken, Tabellen und Spalten nicht in Backticks (`) gesetzt werden. Dies ist bei Word-Characters (A-Z, a-z, 0-9, _) zwar egal, in deinem Fall wird der Bindestrich jedoch als Minus-Operator aufgefasst, der an der entsprechenden Stelle denkbar wenig Sinn ergibt. Die Lösung des Problems wäre, in lib/class/AJAXChat.php die Funktion getDataBaseTable() wie folgt zu verändern:
PHP-Code:
Code: function getDataBaseTable($table) {
return '`'.($this->db->getName() ? $this->db->getName().'`.`'.$this->getConfig('dbTableNames',$table) : $this->getConfig('dbTableNames',$table)).'`';
}
Ein einfacherer Work-around wäre selbstverständlich, auf den Bindestrich im Datenbank-Namen zu verzichten und z.B. eine DB des Namens `ajax_chat` statt `ajax-chat` anzulegen.
Das wars - zumindest bei mir .
Gruß
Sunday
|