extends MySQL

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Account Developer

Voor Bol.com zijn wij per direct op zoek naar een Account Developer voor 32-40 uur per week op het kantoor in Utrecht. Wil jij een directe bijdrage leveren door partners van de juiste data-inzichten te voorzien en via campagnes op nieuwe platformkansen en features te wijzen? Ben jij analytisch sterk en kun jij dit vertalen naar plannen en inspirerende gesprekken? Lees dan snel verder! wat bieden wij jou Salaris van €2400 - €2600 obv 40 uur Minimaal 6 maanden Werklocatie is Utrecht Werken bij bol.com wie ben jij Jij bent commercieel gedreven en weet altijd aan de juiste knoppen te

Bekijk vacature »

PHP Developer

Functie omschrijving Voor een bedrijf in Den Bosch zoek ik een PHP Developer, die al wat werkervaring heeft. Jij gaat aan de slag met de verdere professionalisering van de interne applicaties en software. In de functie ga je verder: Verdere ontwikkeling eigen CRM systeem, vooral middels PHP; Bouwen van verschillende API's & koppelingen; Meedenken om de software/applicaties te verbeteren/optimaliseren; Aan de slag met de interne tooling. Bedrijfsprofiel Dit bedrijf is actief binnen de telecombranche. Het hoofdkantoor zit in regio van Den Bosch en er werken ruim 70 medewerkers, verdeeld over verschillende afdelingen. De afdeling Development bestaat uit vijf collega's, onder

Bekijk vacature »

Front end developer

Functie Binnen de functie van Front-end developer werk je mee aan uitdagende klantprojecten. In teamverband werk je aan de voorkant van onze state-of-the-art portaal oplossingen en apps. Dit alles gebeurt in een multidisciplinaire omgeving waarbij je de ruimte hebt om te sparren, je ideeën scherp te stellen, en waar je met de benodigde kennis en ervaring om je heen altijd terecht kunt bij je collega’s voor vragen en ondersteuning. Meestal werk je vanuit ons kantoor maar we bieden ook alle faciliteiten om thuis te kunnen werken. Voor sommige projecten ga je mee naar de klant, wellicht zelfs in het buitenland!

Bekijk vacature »

PHP Developer - Draag bij aan de maatschappij!

Bedrijfsomschrijving Wil jij als applicatieontwikkelaar deel uitmaken van een gedreven ontwikkelteam en werken aan innovatieve producten? Dan hebben wij dé uitdaging voor jou! Wij zijn op zoek naar een enthousiaste collega die samen met ons de technische ondergrond van onze producten verder wil ontwikkelen met behulp van PHP. Met jouw expertise geef je de finishing touch aan onze producten om jezelf steeds opnieuw weer te verrassen. Functieomschrijving Bij ons staan innovatie en creativiteit centraal. Wij zijn op zoek naar een enthousiaste PHP ontwikkelaar die nieuwe ideeën en inzichten kan inbrengen en daarmee zichzelf en het team verder kan laten groeien.

Bekijk vacature »

Oracle APEX Ontwikkelaar (3.500-6.000 euro)

Bedrijfsomschrijving Ben jij een getalenteerde Oracle APEX ontwikkelaar met minimaal één jaar ervaring in het ontwikkelen van Oracle APEX-applicaties? Ben je gepassioneerd over het ontwikkelen van bedrijfskritische oplossingen en wil je werken bij een toonaangevend consultancybedrijf? Dan zijn wij op zoek naar jou! Deze organisatie beschikt over zowel inhouse als externe projecten, maar bovenal over een sterk team en netwerk van opdrachten waardoor jij jezelf verder kunt ontwikkelen. Het team bestaat uit een aantal junior en medior developers, maar vooral uit senioren. De business unit managers binnen het team zijn mensen die hun vak verstaan en zelf als Oracle APEX

Bekijk vacature »

.NET Developer

Dit ga je doen (Door)Ontwikkelen van het applicatielandschap; (Door)Ontwikkelen van microservices; Bouwen van nieuwe functionaliteiten; Verbeteringen aandragen voor het applicatielandschap; Sparren met de business. Hier ga je werken De organisatie is werkzaam in de financiële dienstverlening met meer dan 200 medewerkers en meer dan 250.000 eindgebruikers is het een van de grotere binnen haar branche. Je komt te werken in een team waarmee je verantwoordelijk bent voor het ontwikkelen en onderhouden van de financiële applicaties binnen de organisatie, denk hierbij aan het bouwen en onderhouden van portalen. Als .net developer ga jij het development team ondersteunen met de transitie naar

Bekijk vacature »

Junior .NET developer

Functie Als junior .NET Developer start jij in een team met 15 developers. In het team is er genoeg senioriteit om ervoor te zorgen dat jij de juiste begeleiding krijgt. Jij begint als eerst alle software pakketten en processen eigen te maken. Vervolgens ga jij deze software programmeren, onderhouden en testen. Ook ga jij research doen naar nieuwe mogelijkheden en zoek jij uit hoe je dit kan implementeren. Jullie werken intern op project basis en afhankelijk van het project werken jullie wel of niet iedere ochtend met een standup. Je gaat als Full stack developer aan de slag en gaat

Bekijk vacature »

Front-end Angular developer

Functie In jouw rol als Front-End developer werk je samen met de backend developers om middels tweewekelijkse sprints het platform naar een hoger niveau te tillen. Hiernaast heb je affiniteit met data en werk je graag samen met het team om de gegevensintegriteit en -beveiliging te waarborgen, om ervoor te zorgen dat de gebruiker wereldwijd de beste SaaS-services heeft. Deze organisatie heeft meer dan 100 mensen in dienst, waarvan er 45 in Nederland werken. Het ontwikkelteam bestaat uit 10 mensen en is verdeeld in 2 scrumteams. Het eerste team bestaat uit Java en Scala ontwikkelaars. Het tweede team, waar jij

Bekijk vacature »

PHP developer

Functie omschrijving Voor een klein bedrijf in de buurt van Nieuwegein zijn wij per direct op zoek naar een talentvolle PHP developer. Er wordt veel ruimte geboden voor eigen initiateven, waardoor je een mooie stempel kan drukken op jouw eigen werkzaamheden (zowel operationeel als strategisch). Het bedrijf heeft middels externe programmeurs een multimedia platform ontwikkeld, maar willen geleidelijk de ontwikkeling naar binnen halen. Om die reden zoeken zij een communicatieve interne PHP developer die graag meebouwt aan het succesvolle product. Je gaat de volgende werkzaamheden verrichten: Platform beheren en programmeren (PHP, MySQL, JQuery, Javascript, XML & HTML); Communicatie en aansturing

Bekijk vacature »

C# .NET Developer IoT SQL Server

Samengevat: Wij ontwikkelen innovatieve oplossingen om apparaten en bezittingen op een eenvoudige en flexibele manier te beveiligen. Ben jij een C# .NET developer? Heb jij ervaring met C# en SQL server? Vaste baan: C# .NET Developer IoT HBO €3.200 - €4.500 Deze werkgever is gespecialiseerd in hoogwaardige GSM/GPRS alarm- en telemetrietechnologie. Met een eigen productlijn en klantspecifieke ontwikkelingen biedt deze werkgever oplossingen om op afstand te meten, melden, loggen en aansturen, ook op plaatsen zonder stroomvoorziening. Onze producten worden gekarakteriseerd door flexibiliteit in de configuratie, betrouwbaarheid en een extreem laag stroomverbruik. Zij werken voor MKB klanten. Deze werkgever heeft veel

Bekijk vacature »

Junior/medior Back end developer PHP, Laravel

Functie Jij als ontwikkelaar komt te werken in een team bestaande uit 4 back end programmeurs, 2 vormgevers/ Front end developers en een online marketeer. Qua persoonlijkheden is het team erg gevarieerd van sportfanaten tot gameliefhebbers en Golfers. Een ding heeft iedereen hier gemeen; Passie voor goede code. In jouw rol zul je voor veel van je tijd je bezig houden met het ontwikkelen van maatwerk features en applicaties. Daarnaast hebben wij op aanvraag ook wel eens een website of onderhoudsklusje, die opgepakt moet worden en hier ben jij ook niet vies van. Jij als full stack developer zult dus

Bekijk vacature »

Functioneel applicatiebeheerder - SOP-SYS-SAM

TenneT is hard groeiend om de onze ambities waar te kunnen maken. Zo nemen wij een leidende rol in het aanjagen van de energietransitie. Het werven van nieuw talent speelt daarin een cruciale rol. Wij zijn op zoek naar een gedreven Functioneel Applicatiebeheerder op onze locatie Arnhem die hieraan wil bijdragen en misschien ben jij dat wel? Jouw bijdrage aan TenneT Je gaat samenwerken in een team van circa 15 functioneel applicatiebeheerders en gaat onderdeel uitmaken van een DevOps team. Met dit team ga je applicaties (laten) ontwikkelen en beheren. Hierbij concentreer je je vooral op de functionele aspecten, zodat

Bekijk vacature »

Fullstack Developer

Functieomschrijving Voor een erkende werkgever in regio Etten-Leur zijn wij op zoek naar een Fullstack Developer met PHP/Laravel ervaring. Je gaat aan de slag met het bouwen van maatwerk software voor klanten die actief zijn in een specifieke markt. Als fullstack developer ben je samen met een enthousiast team van 7 collega’s verantwoordelijk voor de ontwikkeling, beheer en innovatie van informatiesystemen voor klanten in een specifieke branche. Verder ondersteun je complexe uitdagingen van klanten. Je brengt hun wensen in kaart en vertaalt deze door naar maatwerk software. Ervaring met Laravel is een must. Om de klant zo goed mogelijk te

Bekijk vacature »

Back-end Developer

Functieomschrijving Heb jij kort geleden jouw HBO ICT diploma in ontvangst mogen nemen? Of ben je toe aan een nieuwe stap? Voor een softwarebedrijf in regio Oosterhout zijn wij op zoek naar een back-end developer met kennis of ervaring met C# en SQL. Je draagt bij aan de implementatie van aanpassingen, verbeteringen en aanvullingen in de C# based applicaties; Je test de software en ontwikkelt deze door; Je brengt de aanpassingssuggesties van klanten in kaart, om ze vervolgens te analyseren en daarna te concluderen of de aanpassing een verbetering is; Je houdt je bezig met het ontwikkelen van nieuwe functionaliteiten;

Bekijk vacature »

Ervaren PHP Software Developer

Functieomschrijving Voor een toffe opdrachtgever in regio Breda zijn wij op zoek naar een medior PHP Developer met affiniteit met Laravel. Je komt te werken bij een uitdagende opdrachtgever met supergave klanten in een specifieke branche. Als PHP ontwikkelaar ben je samen met een vooruitstrevende team van 6 collega’s verantwoordelijk voor de ontwikkeling, beheer en het vernieuwen van informatiesystemen voor een specifieke branche. Je ondersteunt complexe uitdagingen van klanten. Vervolgens breng je hun wensen in kaart en vertaalt deze door naar maatwerk software. Affiniteit met Laravel is een pré. Om de klanten zo goed mogelijk te ondersteunen en snel in

Bekijk vacature »
Unthinking majority

unthinking majority

07/01/2015 22:41:20
Quote Anchor link
Beste mensen,

Ik vraag me af wat de beste manier is om
een MySQL class te gebruiken.
Vaak extend ik een class met een MySQL class waarbij meerdere tellers en MySQL functies in zitten.
Graag zou ik willen weten of het wel de goede manier is om
MySQl te gebruiken.
En hoe dat zit met de stack en de heap.

voorbeeld:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
<?php
class Voorbeeld extends MySQL{

$this->voeruit("use `php` ");

}

?>


Alvast bedankt.
Gewijzigd op 07/01/2015 22:58:01 door Unthinking majority
 
PHP hulp

PHP hulp

26/04/2024 18:01:47
 
Ward van der Put
Moderator

Ward van der Put

08/01/2015 07:59:09
Quote Anchor link
Je kunt sowieso beter overstappen op MySQLi:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
<?php
class Database extends \MySQLi
{

}

?>
 
Ivo P

Ivo P

08/01/2015 09:34:56
Quote Anchor link
een database class, die dus iets doet met databases, kan inderdaad mysql(i) extenden.

het is alleen niet de bedoeling om bijvoorbeeld een user class te laten extenden op mysql

als je in de user class een database connectie nodig hebt:

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

class user
{
    protected $db;

    function
__construct()
    {

         $this->db = new \MYSQLi();
    }
}


?>
 
Unthinking majority

unthinking majority

08/01/2015 12:55:05
Quote Anchor link
Okeey.
Allemaal bedankt voor de snelle reacties.
Dan denk ik MySQLi toch per class apart te gaan gebruiken.
Dat zal met het sluiten van MySQL ook beter gaan.

Wat ik nu nog heb is:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
<?php
$this
->mysqli = new mysqli("host", "username", "password", "databasenaam");
?>


Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
<?php
class Profiel extends MySQL{

public function __construct(){
    $this->run("use `php`");
   }
}

?>


Ik begrijp nu dat dit niet de bedoeling is.

Mijn MySQL class wat ik nu nog heb ziet er ongeveer zo uit:

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
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
<?php

class MySQL{

private $row;
private $result;
private $mysqli;
protected $teller;
protected $array;

public function __destruct() {$this->mysqli->close();}

protected function run($query){

include ("verbindmysqlinclass.php");

$sql =
<<<SQL

$query
    
SQL
;
$this->result = $this->mysqli->query($sql);
if (!$this->result){
    die("Er is iets fout gegaan bij het uitvoeren van de query ". $this->mysqli->error);
    
}

else{ if (is_object($this->result)){
    $this->teller = $this->result->num_rows;
}

else{
    $this->teller = 0;
}
}

}


protected function escapestringetje($naampje){

include ("verbindmysqlinclass.php");

$naampje = $this->mysqli->real_escape_string($naampje);
return $naampje;

}


protected function geef($array){


$hoeveelheid = count($array);                                      //tel de inhoud van de array

for($i = 0; $i < $hoeveelheid; $i++) {                           //for loopje
        
        $this->{"$array[$i]"} = array();                        //maak een variabele aan die de naam heeft van de inkomende array
                                                                //van die variabele wordt ook meteen een array gemaakt.

    }                                                            

    
while ($this->row = $this->result->fetch_array()) {               //het resultaat van de query array wordt in $this->row gezet {
                                                                //$this-row wordt dus doorlooped totdat die helemaal gevult is tot het einde

    for($i = 0; $i < $hoeveelheid; $i++) {                         // een for loopje
        array_push($this->{"$array[$i]"}, $this->row[$i]);        // hier wordt de inkomende naam tegelijkertijd gevuld met de waardes van de mysql row
    }
}



$this->result->free();
}
}


?>


Maar ik begrijp nu ook dat het mogelijk is om MySQLi rechstreeks te extenden.
Gewijzigd op 08/01/2015 12:55:28 door unthinking majority
 
Frank Nietbelangrijk

Frank Nietbelangrijk

08/01/2015 15:45:39
Quote Anchor link
Ik zou gewoon direct op PDO overgaan. PDO biedt de kans om later over te stappen op een andere database als mysql en het heeft alle zaken gewoon goed geregeld zoals De foutmeldingen (Exceptions).
Gewijzigd op 08/01/2015 15:46:49 door Frank Nietbelangrijk
 
Unthinking majority

unthinking majority

08/01/2015 19:28:01
Quote Anchor link
Dat ga ik proberen.
Iedereen erg bedankt voor de mogelijkheden.
 
Bart V B

Bart V B

08/01/2015 19:51:25
Quote Anchor link
Um... Ivo legt je iets belangrijks uit...
Ivo P op 08/01/2015 09:34:56:
een database class, die dus iets doet met databases, kan inderdaad mysql(i) extenden.

het is alleen niet de bedoeling om bijvoorbeeld een user class te laten extenden op mysql

als je in de user class een database connectie nodig hebt:

Probeer dit in gedachte te houden.
Want ik zie nu dat je dit eigenlijk niet doet.
Het kan wel, maar een extend is een uitbreiding op.
Heeft een profiel een relatie met een database?
Het antwoord is nee. Want je hebt alleen een database nodig om gegevens van een profiel te laden dus extenden op een database is niet nodig.
In jou geval zou het dus iets moeten worden als:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
<?php

class profiel
{
   protected $db;

   public function __construct()
   {

      $this->db = new MySQL;
   }
}

?>


In je class MySQL kan je wel extenden. Want daar is een connectie met mysqli wel nodig dus is wel een uitbreiding op.
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
<?php

class MySQL extends \MySQLi
{
   // hier wat leuke dingen..

}
?>

Quote:
Dat zal met het sluiten van MySQL ook beter gaan.

Je weet dat het niet perse nodig is om de database connectie te sluiten?
Dit gebeurt automagisch aan het einde van het script.
Mits dat je gebruik maakt van een persistent connection.. Dan heb je dat probleem.
 
Unthinking majority

unthinking majority

09/01/2015 15:44:15
Quote Anchor link
Wat Ward en Ivo hebben uitgelegd is inderdaad goed om te weten.
De reactie daarna is een beetje misleidend want dat was wat ik toen nog had en nog niet met verbeteringen.
PDO lijkt mij ook een goede manier.
Wegens de MySQL hackers in de media en overbelasting lijkt mij het wel beter om de database connecties te sluiten terwijl het voor de werking niet nodig is.
Een profiel heeft inderdaad niet direct een relatie met MySQL en daar ga ik mijn script op verbeteren.
Bedankt voor de extra uitleg met voorbeelden.
 
Ozzie PHP

Ozzie PHP

09/01/2015 16:01:22
Quote Anchor link
>> Wegens de MySQL hackers in de media en overbelasting lijkt mij het wel beter om de database connecties te sluiten terwijl het voor de werking niet nodig is.

Dit zijn ongegronde argumenten, en bovendien is het slecht voor je performance om telkens verbindingen te openen en sluiten. Gewoon niet sluiten. Dat regelt PHP allemaal zelf.
 
Bart V B

Bart V B

09/01/2015 16:31:21
Quote Anchor link
Over welke "overbelasting" heb je het?
Wat en hoe heb je gemeten?
Welk stuk is traag?

Indien dat allemaal (nog) niet van toepassing is is er geen probleem. :)

Het is het zelfde als de denkwijze waarin je je script gaat verbeteren.
Als de verbinding niet nodig is, dan gebruik je het ook niet.

Een ander argument is om dit php zelf te laten regelen is dat als je je per ongeluk de verbinding te vroeg sluit je applicatie om zeep is. En dat kan uuuuuuuuuuuuren debuggen worden waarom het niet werkt.
Gewijzigd op 09/01/2015 16:33:10 door Bart V B
 
Unthinking majority

unthinking majority

09/01/2015 18:45:51
Quote Anchor link
Op php.net las ik dit:

http://us.php.net/manual/en/mysqli.close.php
Quote:
Open connections (and similar resources) are automatically destroyed at the end of script execution. However, you should still close or free all connections, result sets and statement handles as soon as they are no longer required. This will help return resources to PHP and MySQL faster.


Daarom dacht ik dat het sluiten beter was.
Over de MySQL hacken dacht ik meer aan de media en het lijkt mij dat je er alleen binnen kan komen als het deurtje open staat of als die te makkelijk open te duwen is.

Ik begrijp niet welk script hiermee bedoeld wordt.
PHP of de MySQL query.

Toevoeging op 09/01/2015 19:06:05:

Het stuk op devzone.zend.com heb ik gevonden.

http://devzone.zend.com/239/ext-mysqli-part-i_overview-and-prepared-statements/

Er staat dat er verschil zit tussen de oude en de nieuwe versie.
 
Bart V B

Bart V B

09/01/2015 19:29:06
Quote Anchor link
Die quote komt van een user.
Dat is niet wat de manual voor schrijft.
De manual zegt alleen dat het een vorige connectie sluit meer niet.

Hoewel de meeste user comments goede tips bevatten is deze van 6 jaar geleden.
Het kan natuurlijk zijn dat de user een berg connecties naar de database maakt waardoor het allemaal erg traag werd, en ja dan is het logisch dat je de close functie gebruikt om de VORIGE connectie te sluiten.

Het openen en sluiten van een database connectie heeft iets van doen met veiligheid.
Je kan zowel met een verkeerd php script, dan wel met een verkeerde (onveilige) query je site hackbaar maken. Ik kan legio aan voorbeelden schrijven hoe het onveilig zou kunnen worden, maar dat doe ik niet. :)

Beter is om je tips te geven om het veilig te maken.

Dwing in je php code af wat verwacht word.
Dus als jij een invoerveld hebt wat verwacht dat alleen nummers bevat dan moet je daarop controleren.
Een string een minimale en maximale lengte geven bijvoorbeeld.
Verwacht je geen tags in je invoer verwijder ze, of controleer er op en geef een foutmelding.

PHP heeft tegenwoordig een filter_var() functie, dat maakt het leven al een stuk aangenamer.
(http://php.net/manual/en/function.filter-var.php)

Als alles klopt wat je verwacht, dan zet je het pas in de database.
Zowel PDO als mysqli hebben de prepared statement functies aan boord.
Die zorgen er voor dat je inhoud correct een veilig in de database komen.

En dan moet het op server nivo ook allemaal nog goed geregeld zijn, maar dat is voor dit topic ietsje te veel van het goede. ;)
EDIT
Ik zie net dat je hebt zitten editen in je post..
Dat artikel is van March 16, 2004.. Dat is van toen ik nog haar op mijn hoofd had.
Dus als jij met een versie werkt die uit die tijd stamt dan word het tijd om eens wat te updaten. Dat is allemaal niet meer relevant.
Overigens is het wel zo dat mysql_connect niet meer werkt in de nieuwste versie, daarom word hier vaak het advies gegeven om over te stappen naar mysqli of PDO.
PDO is leuk als je bijvoorbeeld een zou willen overstappen naar een andere database.
Bijvoorbbeeld SQLite, of postgres.
Gewijzigd op 09/01/2015 19:40:19 door Bart V B
 
Ger van Steenderen
Tutorial mod

Ger van Steenderen

09/01/2015 20:20:39
Quote Anchor link
Goed verhaal Bart.
Ik wel er wel even iets aan toevoegen.

Prepared statements worden op de een af andere manier heilig beschouwd in de PHP wereld.
Dat zijn ze niet en in veel gevallen volkomen overbodig. Het is namelijk zo dat zowel MySQli als PDO eerst een querie naar de db-server stuurt, die wordt geëvalueerd en er wordt een query plan aan gehangen. Dan krijgt de client een pointer naar terug waarna met behulp van die pointer de query telkens uitgevoerd met de verschillende parameters.
Bij eenmalige query's kan je het binden van die parameters net zo goed oplossen met een escape of type casting.
Gewijzigd op 09/01/2015 20:29:04 door Ger van Steenderen
 
Unthinking majority

unthinking majority

09/01/2015 20:30:18
Quote Anchor link
Bedankt voor de goede tips.

Quote:
Ik zie net dat je hebt zitten editen in je post..

Het was een toevoeging of aanvulling op het bericht.

Voor de veiligheid doe ik alles in combinatie met regular expressions.
Mijn laptop is laatst stuk gegaan en ik gebruik nu versie: 5.6.21
Ik ga proberen over te stappen op PDO maar ben daar nog over aan het lezen.
Wat ik me afvraag bij PDO is of daar ook een real_escape_string in zit en of dat nog nodig is.
De prepared statements zitten er inderdaad wel in maar ik vraag me af of dit een goede vervanger is van de real_escape_string.

Toevoeging op 09/01/2015 20:35:17:

En het antwoord zat in het bericht hiervoor die ik nog niet gelezen had.
Bedankt voor de tips.
 
Bart V B

Bart V B

09/01/2015 21:13:20
Quote Anchor link
@Ger, Dank doe mijn best. :)
Dat is een hele goede toevoeging. Want type casting en of escape is natuurlijk ook heel goed mogelijk.
De uitleg heb ik mijzelf eigenlijk nooit in verdiept hoe het prepared statement ding eigenlijk zijn werk doet. Dus ben eigenlijk wel heel blij dat je het even opmerkt hoe dat ding eigenlijk onder water werkt.
Dank daarvoor.

Quote:
Mijn laptop is laatst stuk gegaan en ik gebruik nu versie: 5.6.21

Bedoel je php of mysql?
Quote:
Voor de veiligheid doe ik alles in combinatie met regular expressions.

Poeh.. jij liever dan ik :)
Iets met een allergie voor regular expressions..
Quote:
De prepared statements zitten er inderdaad wel in maar ik vraag me af of dit een goede vervanger is van de real_escape_string.

PDO heeft ook een escape_string optie hoor. :)
http://php.net/manual/en/pdo.quote.php
 
Unthinking majority

unthinking majority

09/01/2015 22:26:21
Quote Anchor link
Ik bedoelde de MySQL server versie.

Via http://www.regex101.com
Kun je regular expressies testen wat het 1000 x makkelijker maakt vind ik persoonlijk.
Handig dat de escape string er ook in zit. Bedankt.
 
Ward van der Put
Moderator

Ward van der Put

10/01/2015 11:36:18
Quote Anchor link
Toch nog even een waarschuwing bij dit eerdere voorbeeld:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
<?php
class profiel
{
   protected $db;

   public function __construct()
   {

      $this->db = new MySQL;
   }
}

?>


De klasse zelf opent hier een databaseverbinding en plaats van een elders geopende database te hergebruiken. Gevolg daarvan kan een bekend performance-probleem veroorzaken: 45 queries uitvoeren via 45 databaseverbindingen voor één enkele webpagina.

In dat geval kán het vroegtijdig sluiten van de verbindingen helpen, al is een ander OOP-ontwerp maken natuurlijk beter.
 
Ivo P

Ivo P

10/01/2015 13:22:15
Quote Anchor link
deels is dit waar:

het is overzichtelijker als je $this->db = db::getDbVerbinding(); oid gebruikt.

Maar als je via php meerdere connecties met dezelfde inloggegevens gebruikt, wordt de bestaande verbinding opnieuw gebruikt en krijg je dus niet 10 exact dezelfde verbindingen.

Wel is het een beetje eng, wat hierboven gedaan wordt: bij het destructen van een object wordt de verbinding gesloten.
Maar het zou een beetje jammer zijn als het destructen van een object zou zorgen dat alle andere objecten ineens geen db-verbinding meer hebben.
 
Unthinking majority

unthinking majority

11/01/2015 19:27:33
Quote Anchor link
Sorry voor mijn late reactie.
Bedankt voor de waarschuwing en uitleg.
Wat ik nu van plan ben om te doen is ongeveer dit:

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
<?php
include_once "Statisch.class.php";

class Profiel{
private $host;
private $database;
private $username;
private $password;

    public function __construct(){
        $this->host = Statisch::getHost();
        $this->database = Statisch::getDb();
        $this->username = Statisch::getUser();
        $this->password = Statisch::getDb();
        
        try
        {
        $this->db = new PDO("mysql:host=". $this->host .";dbname=". $this->database ."",$this->username, $this->password);
        }

        catch(PDOException $e)
        {

            echo '<pre>';
            echo 'Regelnummer: '.$e->getLine().'<br>';
            echo 'Bestand: '.$e->getFile().'<br>';
            echo 'Foutmelding: '.$e->getMessage().'<br>';
            echo '</pre>';
        }
    }
}


$object = new Profiel();
?>


Quote:
Maar het zou een beetje jammer zijn als het destructen van een object zou zorgen dat alle andere objecten ineens geen db-verbinding meer hebben.


Daarbij vraag ik me af hoe dat zit tussen de stack en de heap.

Wat ik tussen stack en heap begrijp is dat het bij $object pas in de heap terecht komt.
Maar ik begrijp dan nog niet of dan ook alles in de heap komt inclusief de include_once "Statisch.class.php";
of als er een object extends wordt met een andere class en of die dan ook meteen in de heap terecht komt.
Gewijzigd op 11/01/2015 19:31:54 door unthinking majority
 



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.