Query afhandeling

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Ervaren C#.NET developer

Functieomschrijving We zijn op zoek naar een ervaren C#.NET programmeur voor een moderne werkgever in de regio Prinsenbeek. Als programmeur zal je bezig zijn met het ontwikkelen van op maat gemaakte webapplicaties voor verschillende klanten, waarbij je ervoor zorgt dat complexe processen zo goed mogelijk worden ondersteund. Je takenpakket omvat onder andere: Werken met databases en dataopslagoplossingen, implementeren van beveiligingsoplossingen en het waarborgen van de beveiliging van applicaties en gegevens, evenals het schrijven van technische documentatie en gebruikershandleidingen. Het ontwikkelen en onderhouden van C#.NET-applicaties. Bijdragen aan het ontwerp en de architectuur van softwaretoepassingen. Het schrijven van hoogwaardige en herbruikbare codes.

Bekijk vacature »

Medior Java developer (fullstack)

Wat je gaat doen: Of beter nog, wat wil jij doen? Binnen DPA GEOS zijn we dan ook op zoek naar enthousiaste Java developers om ons development team te versterken. Als Java developer werk je in Agile/Scrum teams bij onze klanten en daarbij kun je eventueel ook andere ontwikkelaars begeleiden in het softwareontwikkelproces. Verder draag je positief bij aan de teamgeest binnen een projectteam en je kijkt verder dan je eigen rol. Je gaat software maken voor verschillende opdrachtgevers in jouw regio. Je bent een professional die het IT-vak serieus neemt en kwaliteit levert. Je leert snel vanwege je diepgaande

Bekijk vacature »

Robot Programmeur

Een verantwoordelijke baan met leuke uitdagingen. Heb jij ervaring met het programmeren van robots? Kan jij goed samenwerken met collega's die verschillende specialisaties hebben? Ben je oplossingsgericht, analytisch en flexibel? Ga dan aan de slag als Robot Programmeur bij Gibas in Nijkerk! Als Robot Programmeur kom je te werken bij Gibas. Dat betekent dat je gegarandeerd meewerkt aan unieke oplossingen in productieprocessen. Bij elk project moet er opnieuw geëngineerd en geprogrammeerd worden. Dat maakt jouw werk uitdagend! Voordat je robots gaat programmeren komt er het volgende bij kijken: De opdracht gaat van de afdeling Sales naar de afdeling Operations door

Bekijk vacature »

Front end developer

Functie Jij als front end developer gaat werken binnen de teams van onze klant, uiteraard met alle moderne technieken. Opdrachten worden echt gericht op jouw leerdoelen en jouw behoeftes. Wij hebben een omgeving gecreëerd waarin je echt jezelf kan zijn en waar echt gekeken wordt naar jouw voorkeuren. Maak je een fout? Geen probleem, leer ervan en dan ga weer door. Door de variëteit aan werk kun je in verschillende omgevingen een kijkje nemen en dus jezelf snel ontwikkelen. Eisen Je bent communicatief vaardig en houdt van een dynamische omgeving Je hebt HBO werk- en denkniveau Je hebt gedegen kennis

Bekijk vacature »

Software ontwikkelaar ASP .Net / C#

Functie omschrijving Gezocht! Software ontwikkelaar. Ben jij bekend met termen als ASP .Net, C# en SQL? Ben jij op zoek naar een afwisselende en uitdagende IT-functie binnen de agrarische sector? En omschrijf jij jezelf als zelfstandig, enthousiast en proactief? Dan hebben wij de perfecte functie voor jou! Als Software ontwikkelaar binnen deze organisatie ben je samen met één andere collega verantwoordelijk voor de ontwikkeling en modificatie van het support en controle programma dat binnen dit bedrijf gebruikt wordt. Je gaat hierbij bijdragen aan de vertaling van klantwensen naar effectieve softwareoplossingen. Verder bestaan je werkzaamheden uit: Technische uitwerking van de business

Bekijk vacature »

PHP Developer (junior functie)

Functie omschrijving Ben jij een starter en wil je werken bij een jong en leuk bedrijf? Lees dan verder! Wij zijn op zoek naar een PHP Developer binnen een junior functie. Binnen dit bedrijf gaat het om persoonlijke aandacht en ontwikkeling! Je komt te werken voor een leuk communicatiebureau die alles op het gebied van online en offline communicatie doet. Dit doen zij voor verschillende branches, waardoor je aan diverse soorten projecten mag werken, dit maakt deze baan erg leuk! Daarbij werk je aan een door hun zelf ontwikkeld framework welke goed leesbaar is. Je maakt voor bedrijven op maat

Bekijk vacature »

Senior Organisatieontwikkelaar

Als Organisatieontwikkelaar zorg je ervoor dat we in het magazijn van Coolblue altijd vooruit voetballen op het gebied Medewerker en Organisatie Ontwikkeling. Zo draag je bij aan een toekomstbestendig magazijn waar we klanten én medewerkers elke dag blijven verwonderen. Wat doe je als Senior Organisatieontwikkelaar bij Coolblue? Als Organisatieontwikkelaar werk je voor het magazijn van Coolblue. Je krijgt er energie van om continue te bouwen aan een toekomstbestendige organisatie. Dat doe je samen met 17 collega's in het HR-team, ieder met een eigen specialisme. Je werkt graag zelfstandig en je weet snel je weg te vinden als verandermanager. Ook ben

Bekijk vacature »

Database Developer

Functie omschrijving Voor een logistieke dienstverlener in omgeving Zuid Beijerland zijn wij op zoek naar versterking. Weet jij als geen ander systemen aan elkaar te koppelen en heb jij goede kennis van SQL en UML, lees dan snel verder! Jouw taken zien er als volgt uit: Je bent in deze rol voornamelijk verantwoordelijk voor het bouwen, implementeren en beheren van koppelingen tussen de bestaande systemen (zowel business 2 business als application 2 application). Daarnaast inventariseer je de wensen van in- en externe klanten, die je vervolgens samen met je collega's, vertaalt naar technische specificaties, die jullie zelf ontwikkelen en implementeren.

Bekijk vacature »

Fullstack JavaScript Developer Webapplicaties

Bedrijfsomschrijving Voor deze organisatie ben ik op zoek naar een getalenteerde Fullstack JavaScript Developer. Ze is een snelgroeiend software development agency dat zich richt op het ontwikkelen van moderne webapplicaties en complexe systemen voor haar klanten. Ze is gevestigd onder de rook van Utrecht en heeft als doel om tot de top van de Nederlandse agencies te behoren. Deze organisatie maakt softwareoplossingen voor verschillende soorten bedrijven. Innovatie staat hoog in het vaandel en je zult dus met nieuwe technieken aan de slag gaan. Ze hebben klanten in vele branches zitten, zoals retail, finance, gezondheid en onderwijs. De diverse klanten zorgen

Bekijk vacature »

JAVA Programmeur

Bedrijfsomschrijving Functieomschrijving We zoeken per direct enthousiaste software engineers die ons team komen versterken.We werken in DevOps teams met een sterk gevoel voor verantwoordelijkheid. Er wordt nauw samengewerkt met ons Business analyse team (BAT), met onze uitvoerende medewerkers en met de DevOps teams onderling binnen het domein. Het liefst hebben we veel en vaak interactie met onze interne en externe eindgebruikers om zo de juiste dingen te maken. We werken multidisciplinair in een dynamische omgeving. Achtergrond opdracht De Businesseenheid Examens is verantwoordelijk voor de logistiek van de staatsexamens Voortgezet (speciaal) onderwijs, Nederlands als 2e taal en schoolexamens. In het kader

Bekijk vacature »

Sportieve Junior C#.NET developer gezocht!

Bedrijfsomschrijving Wil jij werken aan webapplicaties bij de marktleider binnen de branche? Voor een klant in de buurt van Oosterhout ben ik op zoek naar een Fullstack .NET developer. Dit bedrijf bestaat bijna 10 jaar en is inmiddels uitgegroeid tot marktleider in Nederland en heeft tevens kantoren in meerdere landen in Europa. Dit bedrijf bouwt webapplicaties waarbij internationaal enkele honderdduizenden deelnemers, soms tegelijk, een beroep doen op de realtime data uit deze applicaties. Dit brengt erg veel technische uitdaging met zich mee. Ze ontwikkelen nieuwe applicaties maar ook bestaande applicaties worden uitgebreid en verbeterd. Hier kan jij een onderdeel van

Bekijk vacature »

Mendix Developer

Voor Troostwijk Groep zoeken wij een: Mendix Developer Wij zoeken Je bent een getalenteerde en ervaren Mendix Developer en het is tijd om je horizon te verbreden. Je wilt minder coderen en meer modelleren, minder bezig zijn met allerlei technische details en randvoorwaarden en meer met functionaliteit. Daarnaast ben je trots op de innovatieve en gebruiksvriendelijke applicaties die je in de loop van de jaren hebt gebouwd. Werk je graag in een enthousiast team, wil je veel vrijheid en kun je tegelijkertijd goed met deadlines omgaan, dan ben jij absoluut degene die wij zoeken! Wat je nodig hebt is ruime

Bekijk vacature »

PHP Laravel Ontwikkelaar

Functie omschrijving Weet jij alles over Laravel en krijg je energie van het developen van software hiermee? Laat het weten want wij zoeken een PHP/Laravel developer in regio 's-Hertogenbosch voor klein bedrijf welke softwareoplossingen maakt voor hun klanten. Jouw taken hierbij: Softwareapplicaties ontwikkelen en verder optimaliseren in veel diverse projecten op basis van Agile/Scrum. Documentatie schrijven over applicaties. Uitleg geven over software en applicaties Klantcontact hebben over bestaande applicaties. Techstack: PHP, Laravel, HTML, CSS, Javascript. Bedrijfsprofiel Deze organisatie zit in de regio van 's-Hertogenbosch en is een klein bedrijf. Er werken circa 15 medewerkers, verdeeld in meerdere teams, zoals back-end

Bekijk vacature »

Senior front end developer Digital Agency Amsterda

Functie Wij werken in multidisciplinaire teams aan verschillende projecten, echter blijf je niet gebonden aan 1 team. Dit houdt in dat wij verschillende specialisten in dienst hebben en deze door middel van een roulatiesysteem in multidisciplinaire teams laten werken. Het team bestaat vaak uit Frontend developer(s), Backend Developer(s), Designer(s), Tester(s) en Mobile Developer(s). Deze teams worden afgewisseld waardoor jij de mogelijkheid krijgt om met iedereen een keer samen te werken. Als Frontend Developer ben jij ónze Specialist op dit gebied. Jij werkt mee aan verschillende projecten voor verschillende klanten. Denk bijvoorbeeld aan klanten, zoals’; BAM, IDFA en Ultimaker. Hierbij zorg

Bekijk vacature »

Junior Software developer

Functie Als junior .NET ontwikkelaar start jij in een compact team met drie ervaren .NET ontwikkelaars. Wij werken op projectbasis en begeleiden zelf het hele traject van A tot Z. Wij bieden jou dan ook een brede functie aan met veel technische uitdaging! Ons traject ziet er als volgt uit: 1) Wij analyseren de behoefte van onze klant 2) Wij werken de behoefte uit en vertalen dit naar technische werkzaamheden en maken een uren/kosten schatting; 3) Wij gaan aan de slag met het ontwikkelen van het product met directe feedback van de klant, zodat datgene gerealiseerd wordt, wat gewenst is;

Bekijk vacature »
Lord Gaga

Lord Gaga

01/02/2017 13:54:28
Quote Anchor link
Hallo,

Voordat ik een query uitvoer, check ik met mysqli_ping of er nog verbinding is met de database, puur omdat ik dit gewend ben te doen. Maar is dat wel daadwerkelijk nodig? Stel ik wil enkel iemands gebruikersnaam weergeven, hoe kun je dit dan zo efficiënt mogelijk doen? Op dit moment heb ik de volgende code:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
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
26
27
28
29
30
31
32
33
<?php
if (mysqli_ping($mysqli))
{

    $query =
    "
        SELECT username
        FROM user
        WHERE u_id = "
. mysqli_real_escape_string($mysqli, $_SESSION["user_id"]) . "
    "
;
    
    $result = mysqli_query($mysqli, $query);
    
    if (!(mysqli_errno($mysqli)))
    {

        $user = mysqli_fetch_assoc($result);
?>

            <p>Je bent ingelogd als <strong><?= htmlspecialchars($user["username"]); ?></strong>.</p>
<?php
    }
    else
    {
?>

            <p>Je bent ingelogd als <strong>Onbekend</strong>.</p>
<?php
    }
}

else
{
?>

            <p>Je bent ingelogd als <strong>Onbekend</strong>.</p>
<?php
}
?>


Echter vind ik dit persoonlijk nogal een overkill aan fout afhandeling.

Hoe pakken jullie dit aan?
Gewijzigd op 01/02/2017 13:54:42 door Lord Gaga
 
PHP hulp

PHP hulp

29/02/2024 08:41:58
 
Ben van Velzen

Ben van Velzen

01/02/2017 14:06:23
Quote Anchor link
Pingen is alleen nodig in specifieke gevallen, bijvoorbeeld als je de status van een server wilt weten voor een dashboard. Gewoon je query naar de server schoppen en controleren of dat goed gegaan is is meer dan voldoende.
 
- Ariën  -
Beheerder

- Ariën -

01/02/2017 14:12:39
Quote Anchor link
Ikzelf ben meer voorstander van de MySQLi-OO, wat voor Object Oriënted staat.
Hierbij kloon ik de query-functie met extend in een eigen class. Dan kan je zelf bij de query-functie ingebouwde foutafhandeling bouwen:

http://phptuts.nl/view/26/7/
 
Thomas van den Heuvel

Thomas van den Heuvel

01/02/2017 15:16:31
Quote Anchor link
- Ariën - op 01/02/2017 14:12:39:

En lees ook even de reacties :p. Die tutorial is nogal verouderd.

---

De uitvoering van een of meer scripts duurt meestal niet meer dan enkele milliseconden tijdens welke je, voor het uitvoeren van queries, eerst een verbinding maakt met je database. (tenzij je wellicht van persistente connecties gebruik maakt?)

Als de kans bestaat dat in dit (ultra)korte tijdsbestek je database onderuit gaat dan lijkt mij jouw opstelling niet erg stabiel?

Indien de data in je database vrij complex/uitgebreid is (denk aan iets dat doorkan als administratief systeem) en het niet de bedoeling is dat deze door storingen corrupt raakt dan kun je ook al een hoop afdekken door relaties (foreign keys) en indexen aan te brengen en gebruik te maken van transacties (een batch van queries wordt wel, of in het geheel niet, uitgevoerd).

Ik denk dat je er, als je succesvol een verbinding hebt gemaakt, van uit kunt gaan dat je database voorlopig nog wel even bereikbaar is - even afgezien van mogelijk super inefficiënte code (denk aan queries in loops) die je website op de knieën dwingt.

Kun je anders uitleggen waarom het zo super belangrijk is dat je continu een absolute garantie hebt dat je database up is? En, for that matter, dat je hier op een of andere manier blijkbaar niet van uit kunt gaan?
Gewijzigd op 01/02/2017 15:26:38 door Thomas van den Heuvel
 
Lord Gaga

Lord Gaga

03/02/2017 14:02:03
Quote Anchor link
Bedankt voor de reacties, ik heb het pingen naar de database weggehaald en check nu enkel of de query is gelukt.

@Thomas Het is niet zo dat ik persé wil dat er een absolute garantie is dat er verbinding is met de database, hoewel ik dit niet erg zou vinden. Ik probeer mijn website gewoon zo goed mogelijk te programmeren, althans, zo ver dat mogelijk is.
 
- Ariën  -
Beheerder

- Ariën -

03/02/2017 15:20:44
Quote Anchor link
Thomas van den Heuvel op 01/02/2017 15:16:31:
- Ariën - op 01/02/2017 14:12:39:

En lees ook even de reacties :p. Die tutorial is nogal verouderd.

Maar ik doel op het extenden van de MySQLi-classe en klonen van de query-method.
Of is dat ook achterhaald volgens jouw?

Verder staat het je vrij om een fork op PHPhulp te publiceren. De tutorial is CC, en je helpt er anderen mee. ;-).
 
Thomas van den Heuvel

Thomas van den Heuvel

03/02/2017 15:55:49
Quote Anchor link
- Ariën - op 03/02/2017 15:20:44:
Maar ik doel op het extenden van de MySQLi-classe en klonen van de query-method.
Of is dat ook achterhaald volgens jouw?

Wat in die tutorial gebeurt, en waar ik in mijn reactie aldaar aan refereer, is dat de mysqli klasse en de mysqli_result klasse min of meer worden gecombineerd in één methode (die er in eerste instantie ook nog eens van uit gaat dat er altijd PRECIES één resultaat is) en dat dat naar alle waarschijnlijkheid niet zo'n fantastische keuze is.

Begrijp mij niet verkeerd, ik ben helemaal voor het extenden van dit soort klasses in enkele wrappers, maar dan wel graag op de goede manier. Die tutorial slaat op een aantal zeer belangrijke plaatsen de plank gewoon mis.

Om terug te komen op mysqli_ping:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
<?php
if (mysqli_ping()) {
    // hoera, er is een verbinding, maar...
    // ...
    // er is geen enkele garantie dat na deze controle de connectie niet
    // alsnog overlijdt wat het doel van deze controle compleet verslaat :p
    // dus kun je deze controle net zo goed achterwege laten
    // ...

}
?>

Er zijn andere, en waarschijnlijk betere, manieren om de integriteit van je data te waarborgen (zie een vorige reactie).
Gewijzigd op 03/02/2017 15:58:26 door Thomas van den Heuvel
 
- Ariën  -
Beheerder

- Ariën -

03/02/2017 16:06:27
Quote Anchor link
Een voorbeeld zou niet misstaan, over hoe jij een query uit wil voeren met ingebouwde foutafhandeling ;-)
Zo helpen we elkaar tenminste! Jij mag dan wel een hoop ervaring hebben, maar vergeet niet dat er ook beginners hier op het forum zitten.
 
Thomas van den Heuvel

Thomas van den Heuvel

04/02/2017 01:11:56
Quote Anchor link
Nou als je even op het bovenstaande linkje klikt vind je daar een compleet epistel. Is dat niet genoeg?
 
- Ariën  -
Beheerder

- Ariën -

04/02/2017 01:35:30
Quote Anchor link
Thomas van den Heuvel op 04/02/2017 01:11:56:
Nou als je even op het bovenstaande linkje klikt vind je daar een compleet epistel. Is dat niet genoeg?

Misschien moet je mijn post eens beter lezen, ik heb niks over een epistel gezegd.
Maar je mag het ook achterwege houden, maar dan leert niemand wat in de praktijk. Vergeet niet dat voorbeelden een belangrijk middel zijn om kennis op te doen. Dus hoe zou jij het dan doen om een query met ingebouwde foutafhandeling uit te voeren??
Gewijzigd op 04/02/2017 10:15:26 door - Ariën -
 
Thomas van den Heuvel

Thomas van den Heuvel

04/02/2017 14:58:45
Quote Anchor link
Misschien moet je mijn post beter lezen, daar staat namelijk een link naar voorbeeldcode. Het vervolgens uitpluizen van hoe je dit gebruikt moeten mensen zelf maar doen. Je ontdekt niets als je niets probeert.

Daarnaast is een "ingebouwde foutafhandeling" mogelijk niet echt handig. Wanneer je gebruik maakt van een OO-aanpak is het vrij gebruikelijk dat je ook gebruik maakt van try-catch blokken en exceptions. En het hele doel van exceptions is juist een middel om foutafhandeling te kanaliseren / uit te stellen. De foutafhandeling wordt bewust niet ingebouwd maar gedelegeerd naar andere code (in het catch blok).

Ook is de manier waarop je fouten afhandelt afhankelijk van de omgeving. In een ontwikkelomgeving mag de applicatie meestal wel middenin afgebroken worden en de melding op je scherm worden gedumpt. Op een test- of productieomgeving wil je waarschijnlijk een subtielere aanpak waarbij (de output van) fouten worden onderdrukt maar wel ergens worden gelogd zodat je deze terug kunt zien. De implementatie van foutafhandeling is dus ook niet eenduidig.

En om toch een triviaal voorbeeld te geven, hier een reactie die voortborduurt op de eerdere oplossing.
Gewijzigd op 04/02/2017 14:59:48 door Thomas van den Heuvel
 
- Ariën  -
Beheerder

- Ariën -

05/02/2017 13:19:25
Quote Anchor link
Foutafhandeling kan zowel exceptions zijn,als een simpele if-else-statement. En uiteraard ben ik bewust van wat je aan de gebruiker meldt aan foutmeldingen. Zo ga ik heus geen database-details doorgeven en houd het bij een 'technische storing aan onze kant'. Ikzelf gebruik gewoon exceptions in een extended class met een gekloonde query-functie op de MySQLi-classe. Bevalt mij uitstekend.
In test-opstellingen toon ik gewoon wel de foutmeldingen.

Mogelijk kan je bij de foutmelding een hash tonen die intern verwijst naar de error in de log. Mocht een bezoeker zo aardig zijn om de error door te geven aan de techneuten, dan heeft hij voldoende aan de hash, zonder de betekenis te weten, maar de beheerder kunnen dan zo zien bij welke error het hoort.
Gewijzigd op 05/02/2017 13:20:05 door - Ariën -
 



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.