Waarom vind jij ze simpeler in pg_query_params dan in mysqli_bind_param?

Waarom vind (of noem) je ze überhaupt lastig? Ik ga niet ophouden met stellen dat prepared statements zo simpel zijn, domweg
omdat ze zo simpel zijn.
Geen idee. Nope. Doet het er nou echt toe of het stijgt? Het komt gewoon (veel) te vaak voor.
Komt het genoeg voor om de mensen die wel weten wat ze doen te limiteren? Want je suggereert zelf al dat de bedrijven voorlichten om betere keuzes te maken wanneer het over het ontwikkelen van software gaat er als oplossing niet in zit. Dan blijft alleen de toolset aanpassen over als oplossing, en dat kun je niet doen zonder bestaande software te breken.
Alsof auto's geen veiligheidssystemen hebben om de bestuurder te beschermen... Weer zo'n zwak voorbeeld.
Nee, een zwakke vergelijking van jou. Auto's hebben inderdaad veiligheidssystemen, maar een programmeertaal heeft die net zo goed. PHP heeft mysql_real_escape_string, open_basedir, en zo nog talloze andere beveiligingssystemen. Het is vervolgens aan de gebruiker om ze te gebruiken, net zoals het aan de gebruiker is om zijn gordel om te doen en zijn remvloeistof te controleren als er een lampje gaat branden.
In talen / platformen met betere APIs komt het inderdaad minder voor. In C# heb je niet zo snel een buffer overrun als in C bijvoorbeeld.
C# heeft zijn eigen set met problemen, net zoals Java dat zal hebben. Geen enkele mainstream taal is substantieel veiliger dan een andere.
Gelukkig noem je daar een belangrijke taal die wereldwijd door miljoenen programmeurs wordt omarmd als dé oplossing voor alle gebreken in andere programmeertalen. Nog naast het feit dat ik niet geloof dat in deze taal niet ook dergelijke fouten gemaakt kunnen worden. Een programma is net zo goed als de programmeur en diens oplettendheid. Als je aanneemt dat je toolset al je problemen oplost voor je dan faal je als ontwikkelaar.
cariolive23 schreef op woensdag 16 november 2011 @ 09:06:
[...]
Je vergeet te fetchen, ook daar is ineens een andere functie voor gekomen. Fetchen van een resultaat dat je met mysql_query hebt verkregen, werkt anders dan een resultaat van mysqli_execute.
[...]
Uiteraard kun je zelf functies gaan schrijven om e.e.a. te gaan wrappen, maar dat zie ik een beginnende programmeur al helemaal niet doen.
Dat is een keuze van PHP, niet van MySQL. Er is geen enkele reden waarom PHP dat niet op dezelfde manier zou kunnen implementeren als de Postgre-variant. Waarom ze gekozen hebben om dat niet te doen durf ik niet te zeggen, al vermoed ik dat dat met geheugenmanagement te maken heeft, wat dan waarschijnlijk met je datatypenverhaal samenhangt. Tóch vind ik niet dat de manier van werken met prepared statements nou zo lastig is dat een beginner er niet uitkomt.
Kruistocht? Ik lach hard om de vele onnodige problemen van de programmeurs die met MySQL moeten werken, beetje leedvermaak. Sorry, slechte eigenschap.
Fijn dat je dat in elk geval inziet.