Je kunt met mysqli gebruik maken van nieuwere features in MySQL zoals transacties en prepared statements.quote:Op zondag 28 oktober 2012 14:24 schreef Devolution het volgende:
Wat is eigenlijk een grote voordeel van mysqli ten opzichte van mysql? Of waarom zou ik mysql niet meer gebruiken maar daarvoor in de plaats mysqli (behalve omdat mysql uitgefaseerd wordt)?
Er vinden geen transacties plaats. Het was mij alleen om de eventuele overhead te doen. Maar aangezien die er niet of nauwelijks is, is er geen reden meer om een verbinding open te houden. In ASP.NET was het overigens vrij makkelijk op te lossen. Daar doe je, indien er fouten optreden gewoon een rollback op de transactie en geef je alles weer vrij. Ik neem aan dat dit in PHP ook wel mogelijk is.quote:Op zondag 28 oktober 2012 10:45 schreef GlowMouse het volgende:
De connection overhead is er nauwelijks, het is een non-optimalisatie. En wat gebeurt er als je in een script een lock zet in een transactie en dat script stopt er midden in een transactie mee door een fout, en een ander script gaat met die connectie verder?
Met PDO of mysqli kan dat, maar met de oude mysql_ functies kun je überhaupt geen transacties doen, dus ook geen rollback.quote:Op zondag 28 oktober 2012 15:04 schreef Devv het volgende:
[..]
Daar doe je, indien er fouten optreden gewoon een rollback op de transactie en geef je alles weer vrij. Ik neem aan dat dit in PHP ook wel mogelijk is.
Maar qua veiligheid is er geen verbetering?quote:Op zondag 28 oktober 2012 14:36 schreef Tijn het volgende:
[..]
Je kunt met mysqli gebruik maken van nieuwere features in MySQL zoals transacties en prepared statements.
Is dat bij mysqli niet meer nodig dan?quote:
Nou, je zou kunnen zeggen dat de mogelijkheid om mislukte queries te rollbacken in een transactie of het automatisch escapen van variabelen in prepared statements wel een impact hebben op de security. Het is natuurlijk nog steeds mogelijk om onveilige code te schrijven, net zoals het mogelijk is om met de oude mysql-functies veilige code te schrijven, maar je hoeft je met mysqli en PDO misschien in wat minder bochten te wringen om het goed te doen.quote:Op maandag 29 oktober 2012 09:57 schreef Devolution het volgende:
[..]
Maar qua veiligheid is er geen verbetering?
Niet als je prepared statements gebruikt en je variabelen via bindParam() in je query laat plaatsen, dan gebeurt dat automatisch.quote:Is dat bij mysqli niet meer nodig dan?
dat kan wel, mysql_query("START TRANSACTION")quote:Op zondag 28 oktober 2012 15:36 schreef Tijn het volgende:
[..]
Met PDO of mysqli kan dat, maar met de oude mysql_ functies kun je überhaupt geen transacties doen, dus ook geen rollback.
Handmatig kan je inderdaad van alles. Maar er zijn geen ingebouwde functies voor. Volgens de documentatie wordt het ook niet aangeraden om van nieuwe features op deze manier gebruik te maken.quote:Op maandag 29 oktober 2012 11:26 schreef GlowMouse het volgende:
[..]
dat kan wel, mysql_query("START TRANSACTION")
Ah, inderdaad, dat werd door Innodb gebracht. Maar dan nog wordt volgens de documentatie het sterk afgeraden om MySQL 4.1.3 of later te gebruiken in combinatie met de oude mysql_ functies. Dat is een dusdanig oude versie van MySQL (uit 2004 ofzo?) dat het praktisch voor elke situatie nu niet verstandig is om ermee aan de slag te gaan voor een nieuw project.quote:Op maandag 29 oktober 2012 12:41 schreef GlowMouse het volgende:
transacties zijn geen nieuwe features
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 | <?php private function getFileName($digit_number){ $new_file_name = ""; for($i = 0; $i < $digit_number; $i++){ $flag = rand(0,2); switch($flag){ case 0:{ $new_file_name .= chr(rand(48,57)); break; } case 1:{ $new_file_name .= chr(rand(65,90)); break; } case 2:{ $new_file_name .= chr(rand(97,122)); break; } } } return $new_file_name; } ?> |
Ik zou persoonlijk voor PDO gaan, dan heb je gelijk een databaseonafhankelijke abstractielaag.quote:Op maandag 29 oktober 2012 17:47 schreef Devolution het volgende:
Oke, bedankt voor de info. Misschien toch maar eens overschakelen dan
Efficiënte manier om random strings te genereren.quote:Op donderdag 1 november 2012 08:57 schreef Boze_Appel het volgende:
[ code verwijderd ]
Code evalueren van anderen, is niet goed voor mijn bloeddruk.
quote:Op donderdag 1 november 2012 09:05 schreef mstx het volgende:
[..]
Efficiënte manier om random strings te genereren.
quote:Op donderdag 1 november 2012 08:57 schreef Boze_Appel het volgende:
[ code verwijderd ]
Code evalueren van anderen, is niet goed voor mijn bloeddruk.
Van die code zie je in 10 seconden wat er gebeurt.quote:Op donderdag 1 november 2012 08:57 schreef Boze_Appel het volgende:
[ code verwijderd ]
Code evalueren van anderen, is niet goed voor mijn bloeddruk.
Ik zie een verband.quote:Op donderdag 1 november 2012 14:45 schreef Chandler het volgende:
Je kunt je code natuurlijk ook gewoon voor jezelf houden ik heb anders nog nooit WTF gehoord
Forum Opties | |
---|---|
Forumhop: | |
Hop naar: |