Forum » Server-Side scripting » Wat is beter en waarom
Berichten: 294
avatar
Offline Stuur privebericht
Ik zit even met het volgende, ik wil graag weten welke nu de beste/juiste manier is, en natuurlijk waarom..

1.
Code | Selecteer Alles
minimaliseren
1
mysql_query("UPDATE `accounts` SET `saldo` = `saldo` + `0.15` WHERE `id` = $username;");


2.
Code | Selecteer Alles
minimaliseren
1
mysql_query("UPDATE `accounts` SET `saldo` = `saldo` + `0.15` WHERE `id` = '$username'");


3.
Code | Selecteer Alles
minimaliseren
1
mysql_query("UPDATE accounts SET saldo = saldo+0.15 WHERE id = $username");


Graag jullie info/input...
06-02-2011 09:35
Dit topic is 244 keer bekeken door 44 verschillende leden
Reacties op: "Wat is beter en waarom"
1 | 2 Volgende pagina
Berichten: 830
avatar
Offline Stuur privébericht
Code | Selecteer Alles
minimaliseren
1
mysql_query("UPDATE `accounts` SET `saldo` = `saldo` + '0.15' WHERE `id` = '$username'");


Deze staat er niet bij ?
En ik zal die nemen.
06-02-2011 09:40
Berichten: 294
avatar
Offline Stuur privébericht
Oke, en waarom is de jouwe beter ? kan je dat toelichten.
06-02-2011 09:47
Berichten: 849
avatar
Offline Stuur privébericht
Code | Selecteer Alles
minimaliseren
1
mysql_query("UPDATE `accounts` SET `saldo` = `saldo` + '0.15' WHERE `id` = '".$username."'");

Dit gebruik ikzelf meestal.
06-02-2011 09:47
Webdeveloper & Programmeu
Berichten: 1000
avatar
Offline Stuur privébericht
je kan om een veld en tabel etc een ` neerzetten maar om een getal of woord moet je ' gebruiken. Zeg maar de value die jij opgeeft in een update of insert mogen geen backticks ( ` ) gebruiken maar die moeten juist weer netjes in een single of double staan ( ', "

overigens hoe jouw mysql query gewoon moet:
Code | Selecteer Alles
minimaliseren
1
2
3
4
// stukje beveiliging
// stukken makkelijker om een variabel erbuiten te zetten die je simpel kan aanpassen?
$double = (double) 0.15;
mysql_query("UPDATE accounts SET saldo = saldo + '"$double ."' WHERE id = '".$username."'");


en $username staat gelijk aan een id? rare naam voor een user id? noem het dangewoon $user_id / $userId / $userid, ik zou persoonlijk voor netheid kiezen dus $user_id
06-02-2011 09:48
Berichten: 830
avatar
Offline Stuur privébericht
Quote: NielsB

je kan om een veld en tabel etc een ` neerzetten maar om een getal of woord moet je ' gebruiken. Zeg maar de value die jij opgeeft in een update of insert mogen geen backticks ( ` ) gebruiken maar die moeten juist weer netjes in een single of double staan ( ', "

Ik gebruik;

".$id." of ".ID."
overigens hoe jouw mysql query gewoon moet:

Code | Selecteer Alles
minimaliseren
1
2
3
4
// stukje beveiliging
// stukken makkelijker om een variabel erbuiten te zetten die je simpel kan aanpassen?
$double = (double) 0.15;
mysql_query("UPDATE accounts SET saldo = saldo + '"$double ."' WHERE id = '".$username."'");


en $username staat gelijk aan een id? rare naam voor een user id? noem het dangewoon $user_id / $userId / $userid, ik zou persoonlijk voor netheid kiezen dus $user_id

06-02-2011 09:53
Berichten: 294
avatar
Offline Stuur privébericht
Oke, das een hoop info, top..!

Vraag me af of deze combi, dan wel de juiste is..

Code | Selecteer Alles
minimaliseren
1
$username $_SESSION['userid'];


Samen met deze

Code | Selecteer Alles
minimaliseren
1
mysql_query("UPDATE `accounts` SET `saldo` = `saldo` + '0.15' WHERE `id` = '".$username."'");
06-02-2011 10:00
Berichten: 830
avatar
Offline Stuur privébericht
Ik zal gewoon ".$userid." gebruiken.
Heb je weer een regeltje minder
06-02-2011 10:03
Webdeveloper & Programmeu
Berichten: 1000
avatar
Offline Stuur privébericht
Kurene, dat maakt dus echt niet uit.

MoBSter,
belangrijk is dat je namen zorgvuldig geeft, aangezien je met bijv $username gelijk denkt aan een gebruikersnaam van een account en niet aan het id.
06-02-2011 10:25
Berichten: 9
avatar
Offline Stuur privébericht
Kurene heeft hier het beste antwoord gegeven zover ikzelf kan zien.
Backticks (`) zoveel als mogelijk vermijden. Dat phpmyadmin dit doet betekent niet dat ij dit ook moet doen. Verder moet om de veld met een waarde of string een ('.

Over de $username. Ik zou neerzetten $userId. En natuurlijk ook wel beveiligen. Direct een variabele in de database gooien is nooit slim.
06-02-2011 12:06
Vreemd
Berichten: 1246
avatar
Offline Stuur privébericht
Mijn mening wat betreft...
- backticks (`): niet handig als je ooit een niet-mysql database wilt gebruiken, maar als de rest van je queries backticks bevatten, blijf dan consequent of pas ze allemaal aan.
- quotes: " betekend niets in mysql, ' zul je om bepaalde waarden moeten gebruiken om syntax errors te voorkomen.
- cijfers: ik zie hier liever geen quotes om heen, aangezien het cijfers zijn en geen strings.
- variabele: $username hoort een username te bevatten, geen id.
- veiligheid: $_SESSION['userid'] direct in een query stoppen is geen goed idee, gebruik aub mysql_real_escape_string() om strings onschadelijk te maken, voor cijfers kun je bijvoorbeeld intval() en floatval() gebruiken.
06-02-2011 12:09
Reageer op: "Wat is beter en waarom"
1 | 2 Volgende pagina
Je kan niet reageren omdat je niet bent ingelogd. Inloggen of Aanmelden