Weet er iemand of en hoe je een array kan gebruiken in een insert? zoals bijvoorbeeld :
$query = "INSERT INTO users SET username ='$mysql['username']'";
Dit geeft een probleem op deze manier. Wss heeft het iets met de quotes te maken, maar ik vind het niet.
Bestaat er een mogelijkheid om de hele array in één keer toe te voegen? Zonder de afzonderlijke elementen te moeten toevoegen?
Normaal gesproken moet je een niet-numerieke array-index tussen quotes zetten, omdat de index in een string-context moet staan.
In jouw geval gebruik je je array-waarde binnen een string, dus staat de array-index al in een string context. In dat geval moet je dus geen quotes gebruiken:
$query = "INSERT INTO users SET username ='$mysql[username]'";
Voor wat betreft het tweede deel van je vraag: Als de array-index overeenkomt met je SQL veldnaam, kun je het volgende doen (ongetest):
$query = "";
foreach ($mysql as $key => $val)
{
if ($query != "") { $query .= ", "; }
$query .= "$key = '$val'";
}
$query = "INSERT INTO users SET $query";
woow in elk geval bedankt! Dit kan ik zeker allemaal gebruiken! Er bestaat toch ook zoiets als VALUES om een hele array in één keer toe te voegen of heb ik het mis? Heb al proberen zoeken op mysql.com, maar de zoekterm values komt nogal veel voor ;)
Maar ik weet niet zeker of PHP garandeert dat de keys en de values in dat geval in dezelfde volgorde staan. De foreach() loop vind ik dan ook veiliger.
Maar ik weet niet zeker of PHP garandeert dat de keys en de values in dat geval in dezelfde volgorde staan. De foreach() loop vind ik dan ook veiliger.
array_keys geeft een array terug, daar moet je dan dus ook nog even implode over heen halen...