Seite 1 von 1

[3.2] in php insert into

Verfasst: 09.04.2018 15:22
von pierre63
Hallo

Ich wollte in eine php ein insert Befehl einfügen das
nach eine Aufgabe er in der Datenbank in die Tabelle mchat folgendes einfügt so das es in mchat erscheint.

Code: Alles auswählen

    'message_id'    => '1',
    'user_id'        => 2,
    'mesage'     => 'test ',
);

$sql = 'INSERT INTO ' . MCHAT_TABLE . ' ' . $db->sql_build_array('INSERT', $sql_arr);
$db->sql_query($sql);   

Aber es funktioniert nicht.
Wo liegt mein Denkfehler?

Re: [3.2] in php insert into

Verfasst: 09.04.2018 16:33
von tas2580
Sollte eigentlich so funktionieren. Ob das aber dann auch in mchat ausgegeben wird hängt davon ab wie mchat die DB ausliest. Ich könnte mir vorstellen dass "message_id" nicht immer 1 sein darf. Vermutlich musst du die auch gar nicht angeben weil die DB den Wert selbständig mit jedem neuen Eintrag um 1 erhöht.

Gruß Tobi

Re: [3.2] in php insert into

Verfasst: 10.04.2018 07:20
von Dr.Death
'[color=#FF0000]mesage[/color]' => 'test ',

sollte eher:

'[color=#008000]message[/color]' => 'test ',

heissen.....

message_id ist nicht notwendig anzugeben, da es ein AUTO_INCREMENT beinhaltet.
message_time muss noch angegeben werden, ansonsten ist der Beitrag eher am Ursprung des Chatverlaufs nur sichtbar ;-)

Re: [3.2] in php insert into

Verfasst: 10.04.2018 11:53
von pierre63
Hi

Das mit message_id habe ich schon bemerkt , es ist ja ne AI Tabelle :grin:

Wenn ich jetzt folgendes eingeben

Code: Alles auswählen

  'user_id'        => 2,
    'message'     => 'test ',
);

$sql = 'INSERT INTO ' . MCHAT_TABLE . ' ' . $db->sql_build_array('INSERT', $sql_arr);
$db->sql_query($sql);   

bekomme ich folgende meldung:

Code: Alles auswählen

parse error: syntax error, unexpected '=>' (T_DOUBLE_ARROW) in /www/htdocs/

Re: [3.2] in php insert into

Verfasst: 10.04.2018 16:35
von canonknipser
Da fehlt der Anfang von deinem Code, um das beurteilen zu können. Wenn das dein kompletter Code ist, fehlt vorneweg mindestens noch

Code: Alles auswählen

$sql_arr = (
um das überhaupt zu einer gültigen Anweisung zu machen. Und natürlich musst du auch den phpBB-Prolog mit Zuordnung und Bestückung der benötigten Funktionen, Variablen etc.einbauen. Ansonsten bekommt du bei der darauf folgenden Anweisung $sql = ... einen auf die Finger, weil weder die Konstante MCHAT noch die Objekt-Instanz $db mit ihrer Funktion >sql_build_array definiert sind

Re: [3.2] in php insert into

Verfasst: 11.04.2018 18:44
von pierre63
hallo

Ich habe nun folgende Code genommen und es funktioniert.

Code: Alles auswählen

$this->db->sql_query("INSERT INTO phpbb_mchat (user_id,message) VALUES ('2','test')");