login  Naam:   Wachtwoord: 
Registreer je!
 Forum

var's in een query

Offline Mart3n - 05/05/2006 10:31 (laatste wijziging 05/05/2006 10:32)
Avatar van Mart3nNieuw lid Hey,

wat is nou goed als 't om een query gaat, ik zie vaak 2 verschilelnde dingen

  1. <?php
  2. mysql_query( "INSERT INTO `tabel` ( naam ) VALUES ( {$naam} "): );
  3. // met {}
  4. ?>


  1. <?php
  2. mysql_query( "INSERT INTO `tabel` ( naam ) VALUES ( '" . $naam . "' ) ");
  3. // met '" . . "'
  4. ?>


ik zie veel verschilende dingen, wat is nou goed ?

18 antwoorden

Gesponsorde links
Offline Ibrahim - 05/05/2006 10:33
Avatar van Ibrahim PHP expert { } is als je een var binnen quotes wilt gebruiken

". ." is als je een var buiten quotes wilt zetten
Offline Tuinstoel - 05/05/2006 10:34
Avatar van Tuinstoel PHP expert De onderste is goed. De bovenste zal ook vast wel werken, maar is een vreemde manier. Die accolades heb ik tot nu toe alleen nog gezien in zo´n buggybagger criminals script.
Offline Mart3n - 05/05/2006 10:34
Avatar van Mart3n Nieuw lid euhm , maar het is allebei goed dus 
Offline BigBug - 05/05/2006 10:43
Avatar van BigBug PHP expert Waarschijnlijk wel, maar gebruik het onderste omdat dat het meest gangbare is en het niet slordig staat.
Offline Ibrahim - 05/05/2006 10:50
Avatar van Ibrahim PHP expert { } werkt ook gewoon...

http://nl3.php....-query.php

als je kijkt naar de eerste "User Contributed Notes" door Matt zie je dat het gewoon werkt

+

www.q-bb.nl gebruikt het ook

het is dus niet slordig, of werkt niet. Het is gewoon mogelijk. Welke jij gewoon fijn vind.
Offline Mart3n - 05/05/2006 10:59
Avatar van Mart3n Nieuw lid ik had het ook van q-bb afgehaald , en ik zie bij php.net idd dat het allebei kan, thnx
Offline kokx - 05/05/2006 11:12 (laatste wijziging 05/05/2006 11:16)
Avatar van kokx Onbekend @Mart3n: Dat zal wel komen door JeXuS. Die gebruikt zijn quotes in query's ook zo. Fout is het zeker niet.

@Tuinstoel: Ja idd daar gebruiken ze dat ook in. Maar dat betekend niet dat het fout is.

Met accolades vind ik persoonlijk handiger. Dan moet je wel dubbele quotes gebruiken he.
Offline Richard - 05/05/2006 14:41 (laatste wijziging 05/05/2006 14:41)
Avatar van Richard Crew algemeen Inderdaad, het gebruik van { } met variabelen komt door mij in QBB. Het is namelijk VEEL handiger in SQL queries, waar je (volgens de standaard) enkele quotes moet gebruiken om waardes aan te geven. Daarnaast is het handiger om niet steeds uit de string te springen om 1 variabele neer te zetten.

Citaat:
Waarschijnlijk wel, maar gebruik het onderste omdat dat het meest gangbare is en het niet slordig staat.


Citaat:
De onderste is goed. De bovenste zal ook vast wel werken, maar is een vreemde manier. Die accolades heb ik tot nu toe alleen nog gezien in zo´n buggybagger criminals script.


Dacht het niet, het bovenste wordt vaker gebruikt, jullie ziet t alleen nooit omdat je niet goed kijkt.
Offline Gerard - 05/05/2006 17:33
Avatar van Gerard Ouwe rakker
Citaat:
Dacht het niet, het bovenste wordt vaker gebruikt, jullie ziet t alleen nooit omdat je niet goed kijkt.


Dat kan toch echt wel aardiger neergezet worden =/
Offline Button - 05/05/2006 17:50
Avatar van Button PHP ver gevorderde ik gebruik die accolades sinds een maand of 2 altijd in query's en niet in query's (dus ook gewoon in zinnen met echo) (wist niet dat je bij de {} de enkele aanhalingstekens mocht weglaten ) Ik vind ze gewoon tien keer handiger !
Offline Maarten - 05/05/2006 21:12 (laatste wijziging 05/05/2006 21:12)
Avatar van Maarten Erelid Ik vind het enorm slordig, of het nu veel gebruikt wordt of niet.. gewoon variabelen tussen quotes neerplanten zonder accolades of wat dan ook wordt ook veel gedaan, dat betekent niet dat het goed is. Als je een beetje de regels volgt doe je het toch gewoon goed... en ik maar denken dat die Q in QBB voor Quality stond 
Offline haytjes - 05/05/2006 21:20 (laatste wijziging 05/05/2006 21:20)
Avatar van haytjes Gouden medailleGouden medaille

JS gevorderde
mag ik je erop wijzen dat het gebruik van {$naam} zeer gevaarlijk is, omdat vele mensen, geen fatsoenlijke beveiligingssysteem hebben.
Hierdoor is het beter om mysql_escape_string te gebruiken.
Ook is het beter om niet {} te gebruiken, omdat je dan niet kan checken of het juist is. Ook kan je voor het gemak dan (int) kan voorzetten, waardoor een $id alleen een int kan zijn en zo GEEN mysql injection kan zijn.

daarom opteer ik voor:
  1. <?
  2. INSERT INTO `tabel`
  3. ( naam, id )
  4. VALUES ( '" . mysql_escape_string($naam) . "', ".(int)$id." )
  5. ");



Offline Richard - 05/05/2006 21:55
Avatar van Richard Crew algemeen We gebruiken ook beveiliging, dit wordt alleen VOOR de query op de variabele toegepast.

Citaat:
Als je een beetje de regels volgt doe je het toch gewoon goed...


Zucht, regels ZIJN er niet, wij volgen onze eigen coding standard.

Citaat:
wist niet dat je bij de {} de enkele aanhalingstekens mocht weglaten


mag ook niet;)
Offline Button - 06/05/2006 13:23
Avatar van Button PHP ver gevorderde
  1. <?php
  2. mysql_query( "INSERT INTO `tabel` ( naam ) VALUES ( '{$naam}' "): );
  3. // zie de enkele aanhalingstekens...
  4. ?>

dus het moet zo blijven en niet zo:
  1. <?php
  2. mysql_query( "INSERT INTO `tabel` ( naam ) VALUES ( {$naam} "): );
  3. // met {}
  4. ?>

Offline Richard - 06/05/2006 13:26
Avatar van Richard Crew algemeen inderdaad, die quotes mogen alleen weg als het een INTEGER/FLOAT is die daar komt te staan;-)
Offline Button - 06/05/2006 13:30
Avatar van Button PHP ver gevorderde Nu ja, ze blijven gewoon leuker om mee te werken.
Offline Mart3n - 06/05/2006 13:58
Avatar van Mart3n Nieuw lid en mag het ook met andere dingen (zoals echo enzo) of alleen bij queries ?
Offline Richard - 06/05/2006 16:27
Avatar van Richard Crew algemeen Het MAG overal, maar ik gebruik alleen dubbele quotes bij queries, de rest ALTIJD enkele quotes.
Gesponsorde links
Dit onderwerp is gesloten.
Actieve forumberichten
© 2002-2024 Sitemasters.be - Regels - Laadtijd: 0.215s