Hallo zusammen,
ich hab einen kleinen brainfuck mit PHP, MySQL und besonders mit der Funktion "bind_param", nämlich will ich eine global verwendbare Funktion für jede SQL-Anweisung.
Bislang ist für die Anweisung "INSERT INTO" folgendes entstanden.
PHP: sql.functions.php
function insert($valuearray,$table,$connrw,$pattern){ $i=0 foreach($valuearray as $key => $value) { $insertionkeys.= '?,'; $insertionvalues.= '?,'; $allkeys.='$keys[$i],'; $allvalues.='$values[$i],'; $keys[$i]=$key; $values[$i]=$value; $i++; } // Daher dass WCF die Funktion substr gar nicht mag kürze ich hier ab, dass // hier von den vier Variablen nur das überschüssige Komma entfernt wird $insertion='INSERT INTO ? ('.$insertionkeys.') VALUES ('.$insertionvalues.');'; $insprep=$connrw->prepare($insertion); $insprep->bind_param($pattern,$table,$allkeys,$allvalues); if(!($insprep->execute())) { echo 'Eintrag konnte nicht hinzugefügt werden'; }}
Ich hab als Problem, dass die Tabellen nicht immer die gleiche Anzahl an Spalten haben. Ich hab mir halt gedachte, dass ich in einer Variable einfach alle Spaltennamen und die dazugehörigen Werte speicher, also müsste dann die beiden Variablen am Ende so aussehen.
Ich frag mich jetzt, ob dies überhaupt möglich wäre, sprich, dass die Variablen als Variable oder als String behandelt werden...und was als Alternative möglich wäre...