Versio

Assoc of Array

Overzicht Reageren

Matthias

Matthias

06/11/2009 21:26:00
Quote Anchor link
Beste,

Sorry deze vraag zal al vaker gesteld zijn,
Maar wat is juist het verschil tussen al die mysql_fetch dingen...
want naar mijn ervaring zijn die allemaal hetzelfde met maar 1 verschil namelijk je typte ze anders...
en welke kan ik best gebruiken?
 
PHP hulp

PHP hulp

23/05/2012 21:56:00
Gesponsorde koppelingen:
 
Jan Koehoorn

Jan Koehoorn

06/11/2009 21:43:00
Quote Anchor link
mysql_fetch_assoc vind ik de beste keuze. Die is op 1 na de snelste, maar je kunt dan met associatieve arrays werken, en dan leest je code lekkerder.

Edit: ik heb er ooit een testje voor geschreven: MySQL fetch performance test
Gewijzigd op 01/01/1970 01:00:00 door Jan Koehoorn
 
- SanThe -

- SanThe -

06/11/2009 21:44:00
Quote Anchor link
Zie php.net
 
Matthias

Matthias

06/11/2009 21:49:00
Quote Anchor link
@jan
thnx


@santhe
was ik aan het kijken
maar ziet er 2 keer zelfde uit naar mijn weten

@polheron

==
Ik houd persoonlijk van de array notatie: $rs['test']
==
hoe bedoel je??
is het bij een assoc dan anders?


de output is toch hetzelfde bij beide?
Gewijzigd op 01/01/1970 01:00:00 door Matthias
 
Martijn Wieringa

Martijn Wieringa

06/11/2009 21:49:00
Quote Anchor link
Kwestie van smaak.. 'k zou niet weten hoe ze verhouden qua performance, maar ik denk dat het weinig zal verschillen.

Ik houd persoonlijk van de mysql_fetch_assoc; zodat je kunt zeggen: $rs['test'].

Dan kunnen er namelijk rare karakters in een kolomnaam als dat wenselijk/noodzakelijk is (al raad natuurlijk iedere database-ontwerper dat sterk af). Ook kun je de aanroep dan zo complex maken als je zelf wilt.


Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
<?php

$naamVanDeKolom
= 'test';

echo $rs[$naamVanDeKolom];

?>


of zo

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
<?php

function naamVanDeKolom()
{

    return 'test';
}


echo $rs[naamVanDeKolom()];

?>



Voor OOP-liefhebbers heeft mysql_fetch_object $rs->test natuurlijk ook z'n charme.
Gewijzigd op 01/01/1970 01:00:00 door Martijn Wieringa
 
Jan Koehoorn

Jan Koehoorn

06/11/2009 21:51:00
Quote Anchor link
mysql_fetch_assoc is gemiddeld twee keer zo snel als mysql_fetch_object, vandaar mijn keuze.
 
- SanThe -

- SanThe -

06/11/2009 21:51:00
Quote Anchor link
Pholeron schreef op 06.11.2009 21:49:
Ik houd persoonlijk van de array notatie: $rs['test']. Dan kunnen er namelijk rare karakters in een kolomnaam als dat wenselijk/noodzakelijk is

Dat is natuurlijk niet zomaar waar.
Dat werkt pas als je in mysql de (verfoeide) backtics gebruikt.
Gewijzigd op 01/01/1970 01:00:00 door - SanThe -
 
Martijn Wieringa

Martijn Wieringa

06/11/2009 21:56:00
Quote Anchor link
@Jan Koehoorn
Interessante test die je daar hebt uitgevoerd!
 
Matthias

Matthias

06/11/2009 22:37:00
Quote Anchor link
om eventjes op te gaan in de tests van jan,
hoe kan bij select het * een cijfer zijn?
en tabel mag toch niet beginnen met een cijfer laat staan een cijfer zijn
Gewijzigd op 01/01/1970 01:00:00 door Matthias
 
- SanThe -

- SanThe -

06/11/2009 22:58:00
Quote Anchor link
Waar zie jij dat cijfer? Behalve dan het woord 'cijfer'?
 
Matthias

Matthias

06/11/2009 23:05:00
Quote Anchor link
SELECT cijfer

Tijd: 0.789577960968

Tijd: 0.798079967499

Tijd: 0.802412033081

daar?
hoe kan dat???
 
- SanThe -

- SanThe -

06/11/2009 23:13:00
Quote Anchor link
SELECT cijfer <= dit is een woord en geen 4 of 7
en
Tijd: 0.789577960968 <= is de tijd van het testresultaat.
 
Jan Koehoorn

Jan Koehoorn

06/11/2009 23:21:00
Quote Anchor link
@ Matthias: een veldnaam mag ook geen gereserveerd woord zijn, dus dit is fout:

SELECT gereserveerd_woord

;-)
 
- SanThe -

- SanThe -

06/11/2009 23:29:00
Quote Anchor link
Jan Koehoorn schreef op 06.11.2009 23:21:
@ Matthias: een veldnaam mag ook geen gereserveerd woord zijn, dus dit is fout:

SELECT gereserveerd_woord

;-)

En dan bedoelt Jan deze: http://www.htmlite.com/mysql002a.php
Gewijzigd op 01/01/1970 01:00:00 door - SanThe -
 
Michael -

Michael -

07/11/2009 00:05:00
Quote Anchor link
Jan Koehoorn schreef op 06.11.2009 21:43:
mysql_fetch_assoc vind ik de beste keuze. Die is op 1 na de snelste, maar je kunt dan met associatieve arrays werken, en dan leest je code lekkerder.

Edit: ik heb er ooit een testje voor geschreven: MySQL fetch performance test

Ik gebruik ook altijd assoc, maar is schijnbaar niet de snelste. Wat ik dan interessanter vind is het verschil met PDO. Dat lijkt me toch wel dé toekomstige manier. Of zit er nou naast. Mysql_* zal toch wel een keer verdwijnen.
 
Jacco Engel

Jacco Engel

07/11/2009 11:25:00
Quote Anchor link
ik vind fetch_assoc/fetch_array geen discussie waard :P standaard returned fetch_array een combinatie van fetch_row en fetch_assoc results. (associatieve en numerieke array) en haal je dus 2 keer zoveel info binnen als noodzakelijk
 
Jaron T

Jaron T

07/11/2009 13:32:00
Quote Anchor link
assoc is sneller :)
 
Jan Koehoorn

Jan Koehoorn

07/11/2009 13:55:00
Quote Anchor link
De keuze van de fetch-methode is grotendeels persoonlijke voorkeur. Er valt wel snelheidwinst te boeken, maar het verschil is ook weer niet ontzettend groot. Ik denk dat het veel belangrijker is dat je je DB indexes goed voor elkaar hebt.
 



Overzicht Reageren

Get Adobe Flash player