Moin Leute,
ich bastele gerade an einer Klasse, bei der als Parameter einer Methode ein assoziatives Array übergeben wird. Die Keys sollen dabei den Spalten-Namen einer SQL-Tabelle entsprechen, und die Values eben die Werte für jene Tabellen enthalten.
Da die Anzahl der Spalten/Werte variabel sein soll muss ja dynamisch das Query generiert werden. Es handelt sich hierbei um ein INSERT. z.B.
INSERT INTO table ( col1, col2, col3 ) VALUES ('val1', 'val2', 'val3')
Nun soll aus dem Array das "col1, col2, col3" und das " 'val1', 'val2', 'val3' " generiert und die Variablen $cols und $values gespeichert werden.
Dabei ist zu beachten, dass nach dem letzten Col/Wert ja kein Komma mehr hinten dran muss.
Probiert habe ich das wie folgt:
Bei $cols klappt das wunderbar so wie es soll. Bei $values sind allerdings immer nur durch Kommata getrennte Hochkommata drin, ohne die Werte in der Mitte.
Ich verstehe bloß nicht wieso. Es wird kein Error geworfen ( Ja, Error-Reporting is oben ) und ein ausgeben aller Arrays mit print_r zeigt auch, dass dort alle Werte wie gewollt vorhanden sind.
Ich häng da nun schon seit 20 Minuten drüber und habe absolut keine Ahnung wieso das nicht funktioniert.
Ich danke für jede Hilfe!
Greetz,
Nohfreak
ich bastele gerade an einer Klasse, bei der als Parameter einer Methode ein assoziatives Array übergeben wird. Die Keys sollen dabei den Spalten-Namen einer SQL-Tabelle entsprechen, und die Values eben die Werte für jene Tabellen enthalten.
Da die Anzahl der Spalten/Werte variabel sein soll muss ja dynamisch das Query generiert werden. Es handelt sich hierbei um ein INSERT. z.B.
INSERT INTO table ( col1, col2, col3 ) VALUES ('val1', 'val2', 'val3')
Nun soll aus dem Array das "col1, col2, col3" und das " 'val1', 'val2', 'val3' " generiert und die Variablen $cols und $values gespeichert werden.
Dabei ist zu beachten, dass nach dem letzten Col/Wert ja kein Komma mehr hinten dran muss.
Probiert habe ich das wie folgt:
PHP-Code:
<?php
$count = sizeof($data);
$keys = array_keys($data);
$values = array_values($data);
$cols = ' ';
$values = ' ';
for($i = 0; $i < ( $count - 1 ); $i++){
$cols .= $keys[$i] . ', ';
$values .= "'" . $values[$i] . "', " ;
}
$cols .= $keys[$count - 1];
$values .= " ' " . $values[$count - 1] . " ' ";
?>
Ich verstehe bloß nicht wieso. Es wird kein Error geworfen ( Ja, Error-Reporting is oben ) und ein ausgeben aller Arrays mit print_r zeigt auch, dass dort alle Werte wie gewollt vorhanden sind.
Ich häng da nun schon seit 20 Minuten drüber und habe absolut keine Ahnung wieso das nicht funktioniert.
Ich danke für jede Hilfe!
Greetz,
Nohfreak
Kommentar