Kan der bruges array i bind_param (MySQLi)
Jeg vidste ikke helt hvordan jeg kunne lave en sigende overskrift.Grundet en kombination af noget jeg så tidligere i en tutorial, og hjælpen jeg fik i spørgsmål: www.eksperten.dk/spm/985697, har jeg brugt en del timer nu på et lille projekt, som jeg ikke kan få til at virke, og jeg ved ikke om det overhovedet er muligt.
Jeg har set en person, ved hjælp af en PDO forbindelse, lave en funktion, der automatisk laver en INSERT til en database:
Jeg har forsøgt at lave den med MySQLi, men det er ikke lykkes:
Jeg har indtil videre lavet:
public function insert($table, $data){
ksort($data); // Sæt i alfabetisk orden for at sikre ens fremgangsmåde
$fnames = implode(', ', array_keys($data)); //Deler keys med et komma
$countarr = count($data); // Tæller antal array
$qm = array_fill(0,$countarr,'?'); // Laver arrays value om til spørgsmålstegn
$fqm = implode(', ', array_values($qm)); // Deler spørgsmålstegn med komma
$en2da = array(
'integer' => 'i',
'double' => 'd',
'string' => 's',);
$a2en = array_map(function($v) use($en2da) { return $en2da[gettype($v)]; }, $data); //bestemmer vaule typen
$fsid = implode('', array_values($a2en)); // organiser valuetypen
$fvalues = implode(',', array_values($data)); // deler values med et komma
print_r($fqm);
echo '<br />';
print_r($fnames);
echo '<br />';
print_r($fsid);
echo '<br />';
print_r($fvalues);
//Min ide var så at indsætte det på følgende måde:
$stmt = $this->prepare('INSERT INTO '.$table.' ('.$fnames.') VALUES ('.$fqm.')');
$stmt->bind_param('$fsid',$fvalues);
}
Jeg har prøvet flere ting, men intet har virket.
Er det helt umuligt at lave, bare dumt at lave, eller er der en der har en løsning?