[mySQL] Netjes maar toch werkend een query schrijven

Pagina: 1
Acties:

  • r0bert
  • Registratie: September 2001
  • Laatst online: 26-05 09:56
Is totaal geen grote vraag, maar toch handig om even te weten of het misschien op een makkelijke manier kan..

Ik bouw mijn mySQL-query op de volgende manier op:
PHP:
1
2
3
4
5
$strMysqlQuery     = "UPDATE       `tblUsers`
                         SET       `varTekst`  = '".$data[0]."'
                            AND    `varMeer`   = '".$data[1]."'
                         WHERE     `varCond1`  = '".$data[2]."'
                            AND    `varCond2`  = '".$data[3]."'";


Maar bij de output (dus het resultaat $strMysqlQuery), komen nu bijv de AND en de voorgaande quote tegen elkaar aan en dan werkt de query niet meer..

vb van de fout:
PHP:
1
[..] `varTekst` = 'hier staat'AND `varMeer` = 'blabla' [..]

Ik heb al achteraan (bijv achter $data[0]."') een spatie toegevoegd en ervoor, maar dat helpt allemaal niet.. Hoe moet het wel? Of moet ik alles gewoon vies achter elkaar plakken :?

[ Voor 63% gewijzigd door r0bert op 03-02-2004 20:57 ]


  • coubertin119
  • Registratie: Augustus 2002
  • Laatst online: 25-05 19:01
Misschien een domme vraag, maar zet je de spatie wel na de ' en niet na de "?

Skat! Skat! Skat!


  • r0bert
  • Registratie: September 2001
  • Laatst online: 26-05 09:56
Ja, na de enkele quote (')

  • Spider.007
  • Registratie: December 2000
  • Niet online

Spider.007

* Tetragrammaton

Dat lijkt mij zeer onlogisch; maar voor de zekerheid heb ik het gechecked:

PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
<?
$data[0] = "asdf";
$data[1] = "saliuhg";
$data[2] = ";;sdj";
$data[3] = "askdf";

$strMysqlQuery     = "UPDATE       `tblUsers`
                         SET       `varTekst`  = '".$data[0]."'
                            AND    `varMeer`   = '".$data[1]."'
                         WHERE     `varCond1`  = '".$data[2]."'
                            AND    `varCond2`  = '".$data[3]."'";

echo $strMysqlQuery;

code:
1
2
3
4
5
UPDATE       `tblUsers`
                         SET       `varTekst`  = 'asdf'
                            AND    `varMeer`   = 'saliuhg'
                         WHERE     `varCond1`  = ';;sdj'
                            AND    `varCond2`  = 'askdf'

Dus ik weet niet wie of wat die spaties weghaalt :?

---
Prozium - The great nepenthe. Opiate of our masses. Glue of our great society. Salve and salvation, it has delivered us from pathos, from sorrow, the deepest chasms of melancholy and hate


  • bigtree
  • Registratie: Oktober 2000
  • Laatst online: 31-03 15:20
r0bert schreef op 03 februari 2004 @ 20:55:
Is totaal geen grote vraag, maar toch handig om even te weten of het misschien op een makkelijke manier kan..

Ik bouw mijn mySQL-query op de volgende manier op:
PHP:
1
2
3
4
5
$strMysqlQuery     = "UPDATE       `tblUsers`
                         SET       `varTekst`  = '".$data[0]."'
                            AND    `varMeer`   = '".$data[1]."'
                         WHERE     `varCond1`  = '".$data[2]."'
                            AND    `varCond2`  = '".$data[3]."'";
Ongeacht hoe je spaties komen te staan... je weet dat als je meerdere kolommen wilt updaten je deze tussen komma's moet zetten in plaats van ANDs? Dus zo:
SQL:
1
UPDATE tabel SET Kolom1 = 'foo', Kolom2 = 'bla'
in plaats van
SQL:
1
UPDATE tabel SET Kolom1 = 'foo' AND Kolom2 = 'bla'
want anders stop je een boolean in Kolom1, vast niet de bedoeling. leeswerk.

Lekker woordenboek, als je niet eens weet dat vandalen met een 'n' is.