login  Naam:   Wachtwoord: 
Registreer je!
 Forum

Dynamische Query

Offline marten - 28/08/2006 10:43 (laatste wijziging 28/08/2006 10:44)
Avatar van martenBeheerder Goedemorgen sima leden

Ik heb de volgende class
http://www.plaatscode.be/2329/

In deze class heb ik de volgende methode

  1. <?php
  2. function EditSettings() {
  3. /**
  4. * Dynamische query update
  5. */
  6. $class_details = new ReflectionClass('Onderhoud');
  7. $props = $class_details->getProperties();
  8.  
  9. $aantal = count($props);
  10.  
  11. $Query = 'UPDATE admin_settings SET ';
  12.  
  13. for ($a_pr=0; $a_pr<$aantal; $a_pr++) {
  14.  
  15. $prop_name = $props[$a_pr]->getName();
  16.  
  17. $Query .= $prop_name . '=\'' . $this->$prop_name . '\',';
  18. }
  19.  
  20. $Query = substr($Query, 0, (strlen($Query) - 1)) . ') WHERE settings_id = ' . $this->settings_id;
  21.  
  22. /**
  23. * Einde aanmaken query
  24. */
  25.  
  26. $Query_res = @mysql_query($Query);
  27.  
  28. if ($Query_res === FALSE) {
  29. throw new Exception('Editing admin settings error: Query failed ' . mysql_error() , QUERY_ERROR );
  30. }
  31. } ?>


Zoals je ziet is het niks anders dan een update query. Maar wel een dynamische. Voor de mensen die het niet snappen. Door middel van deze code word er een query gegenereerd aan de hand van de instantievariabelen van de klasse. Hier krijg je dus een query als:

UPDATE admin_settings SET settings_id = 1, info = 'blabla' enz.

Het probleem hier is dat de 1 van settings id tussen quotes komt. Hier loopt de query op vast. Wie heeft er een oplossing zodat getallen niet tussen quotes komen in de query?

Greetz en alvast bedankt
Marten

2 antwoorden

Gesponsorde links
Offline jensen - 28/08/2006 10:49
Avatar van jensen Nieuw lid Met 2 soorten quotes werken ?
  1. "UPDATE `admin_settings` SET `settings_id` = '1', `info` = 'blabla'..."
Offline Ch0coschijt - 28/08/2006 11:07
Avatar van Ch0coschijt HTML interesse Je kan eerst wel gaan controleren met is_numeric() dan kan je zien of het een getal is of niet
Gesponsorde links
Dit onderwerp is gesloten.
Actieve forumberichten
© 2002-2024 Sitemasters.be - Regels - Laadtijd: 0.186s