Zur Erklärung:
Normalerweise wird der Inhalt einer Variablen beim Zuweisen innerhalb von den Hochkommata übergeben.
Ein Befehl wird immer mit einem Semikolon abgeschlossen.
Beispiel:
Der lange SQL Code lautet ja so:
Code: Alles auswählen
UPDATE phpbb_chris1278_cookie SET chris1278_name 'neuer_name1' WHERE chris1278_name = 'cs_1_enable'
Da man die einzelnen Hochkommata aber auch benutzt um Texte (Strings) von Variablen oder auch PHP Befehlen zu trennen bzw. Zeichenketten zusammen zu kleben, habe ich die Hochkommata (oder auch Single Quoten genannt) durch Anführungszeichen ( Double Quotes ) ersetzt:
Code: Alles auswählen
UPDATE phpbb_chris1278_cookie SET chris1278_name "neuer_name1" WHERE chris1278_name = "cs_1_enable"
Wir könnten nun also schreiben:
Code: Alles auswählen
$sql = UPDATE phpbb_chris1278_cookie SET chris1278_name "neuer_name1" WHERE chris1278_name = "cs_1_enable"
Das klappt aber aus zwei Gründen nicht:
Das Ende des Befehls hat
kein Semikolon.
Der Variablen Wert steht nicht
zwischen zwei Hochkommata.
Korrekt wäre:
Code: Alles auswählen
$sql = 'UPDATE phpbb_chris1278_cookie SET chris1278_name "neuer_name1" WHERE chris1278_name = "cs_1_enable"';
Nun wird es aber etwas spannender... wir wollen ja den Tabellen Präfix als Variable in den eigentlichen Variablenwert übergeben.
Dieser Tabellen Präfix wird aber über eine PHP Funktion ermittelt und übergeben.
$this->table_prefix
Um in einer Zeichenkette eine PHP Funktion einzubauen, müssen wir die Zeichenkette "aufbrechen" den PHP Code dazwischen schieben und den Rest der alten Zeichenkette wieder drankleben.
Zeichenketten verbindet man mit eine Punkt.
Siehe dazu auch:
https://www.php.net/manual/de/language. ... string.php
Beispiel:
Code: Alles auswählen
$variable1 = "ein ";
echo "Da steht " . $variable1 . "Haus.";
Ergebnis: "Da steht
ein Haus."
Also:
Code: Alles auswählen
$sql = 'UPDATE ' . $this->table_prefix . 'chris1278_cookie SET chris1278_name "neuer_name1" WHERE chris1278_name = "cs_1_enable"';
Nächster Schritt:
Wir weisen den SQL Befehl keiner Variablen zu, sondern einem Array!
Alte Schreibweise:
Code: Alles auswählen
$sql_ary = array(
'UPDATE ' . $this->table_prefix . 'chris1278_cookie SET chris1278_name "neuer_name1" WHERE chris1278_name = "cs_1_enable"',
);
Hinweis für die Syntax:
Innerhalb von einem Array, wird jede Array Zuweisung mit einem Komma abgeschlossen.
Ausserhalb vom Array Also nach der letzten geschlossenen Klammer gehört das Semikolon.
Code: Alles auswählen
$variable_array = array(
'variable1',
'variable2',
'variable3',
);