login  Naam:   Wachtwoord: 
Registreer je!
 Forum

database updaten met gegevens array

Offline kurohyou - 07/06/2009 03:57 (laatste wijziging 07/06/2009 03:59)
Avatar van kurohyouOud lid
  1. <?php
  2.  
  3. class members {
  4.  
  5. protected $member = array("id" => "", "username" => "", "email" => "");
  6. protected $mysqli;
  7.  
  8. public function __set($key, $value){
  9. $sql="UPDATE members SET ".$key." = '".$this->mysqli->real_escape_string($value)."' WHERE id=".$this->member["id"];
  10. @$this->mysqli->query($sql) OR trigger_error($mysqli->error);
  11. $this->member[$key]=$value;
  12. return true;
  13.  
  14. }
  15. }
  16.  
  17. ?>

hey,
hoe kan ik ervoor zorgen dat de gegevens ipv 1 per 1 met een array in 1 keer worden uitgevoerd, want nu voert hij telkens een query uit voor elke waarde, gegevens worden momenteel zo geupdated.
  1. <?php
  2. $member->email="test@test.com";
  3. ?>

alvast bedankt

1 antwoord

Gesponsorde links
Offline Wave6 - 07/06/2009 09:27 (laatste wijziging 07/06/2009 09:30)
Avatar van Wave6 PHP beginner __set(); is een magical function. Deze wordt uitgevoerd na dat jij het object $member aanroept.
Vervolgens gebruik je @$this->mysqli->query.
Als eerste moet je ik afraden om @ te gebruiken.
Deze onderdrukt je foutmelding vervang dit dan door een try, catch statement zodat je een nette exception kan throwen;)
$this->mysqli->query(); is een functie die word dus gelijk uitgevoerd als je die $member aanroept.

Ik zou als ik jou was eerst een functie maken die, die array genereert. En dan niet zoiets als $array[index] maar meer als $array[index][index].
Een associatieve array wordt dit genoemt.

Dan doe je in een andere functie je array door loopen en in die loop bouw je je query op;)

Deze kun je dan vervolgens in 1 keer uitvoeren.

TIP: er is hier ook een leuk ontwerp patroon voor;)
Het heet registery;)
Gesponsorde links
Dit onderwerp is gesloten.
Actieve forumberichten
© 2002-2024 Sitemasters.be - Regels - Laadtijd: 0.18s