extends MySQL

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Medior/Senior Python developer

Functie Jij als Senior Python developer hebt al ruime ervaring opgedaan. Bedrijven komen bij de organisatie om technische vraagstukken op te lossen. Jij als specialist bent dus de representatie van deze kwaliteit. Je zult de keuze krijgen tussen lange of korte projecten waarin je komt te werken in multidisciplinaire teams. Projecten die je gaat uitvoeren zijn zeer uitlopend. Zodoende kun je aan de ene kant kiezen voor een greenfield project en stroom je bij een ander project midden in een migratietraject in. Voor de ene klant ontwikkel je ene nieuwe portal en voor het andere project duik je veel meer

Bekijk vacature »

Back-End Web Developer

Als Back-End Web Developer bij Coolblue zorg je ervoor dat onze webshops elke dag een beetje beter zijn. Wat doe je als Back-End Web Developer bij Coolblue? Als Back-End Web Developer werk je met andere development teams samen om onze webshop zo optimaal mogelijk te laten werken en onze klanten blij te maken. Als backend developer weet je de weg in PHP, kan je in Typescript een microservice op zetten of ben je bereid om dit te leren. Ook Web Backend Developer worden bij Coolblue? Lees hieronder of het bij je past. Dit vind je leuk om te doen PHP

Bekijk vacature »

Java developer - procesoptimalisatie (Inhouse)

Functie Wat ga je doen als Java developer? Jij als back end developer hebt al enige ervaring opgedaan in jouw vakgebied. Voornamelijk het werken met Java en Spring spreekt jou aan. Jij wordt samen met je collega developers in het team verantwoordelijk voor de gehele back end van de applicatie. Hierdoor heb jij veel zelfstandigheid in je rol en zul je ook zelf beslissingen samen met de PO maken. Er wordt gewerkt volgens de SCRUM methodiek, om zo structuur te creëren in de werkzaamheden. Binnen de 2-wekelijkse sprints pak jij je taken op die samen met de PO afgestemd zijn.

Bekijk vacature »

Software Programmeur PHP

Functie Wij zijn op zoek naar een PHP programmeur voor een leuke opdrachtgever in omgeving Alblasserdam. Heb jij altijd al willen werken bij een bedrijf dat veilige netwerkverbindingen levert door middel van veilige oplossingen? Lees dan snel verder. Hoe kan jouw dag er straks uitzien? Je gaat software en webapplicaties ontwikkelen met behulp van de talen C / C++ / PHP. Je gaat technische klussen uitvoeren op locatie bij klanten. Je onderhoudt contact met de projectleider om er zeker van te zijn dat een projecten goed verlopen. Je gaat klanten ondersteunen op het gebied van geleverde software en webapplicaties. Tevens

Bekijk vacature »

BizTalk/ Azure Developer

Dit ga je doen •Understanding the scope of required functionality, translate them within context of way of working of the team into developed solutions, whilst safeguarding documentation; •Planning based on assigned sprint tasks; •Acting as an expert in estimation techniques and planning; •Understanding your role in the agile process and act in this way; •Facilitating internal communication and effective collaboration; •Working closely with scrum master to handle backlogs and new requests; •Providing information to the third parties about activities and needs for compliance. Hier ga je werken Our client is a leading organization focusing on animal nutrition, offering solutions that

Bekijk vacature »

Oracle Apex developer

Bedrijfsomschrijving My client is a technology company based in Den Bosch, the Netherlands. They specialize in providing innovative software solutions to clients, and they are currently looking for an experienced Oracle Apex developer to join the IT team. Functieomschrijving As an Oracle Apex developer, you will be responsible for designing, developing, and maintaining web-based applications using Oracle Apex. You will work closely with project managers, business analysts, and other developers to ensure that clients' needs are met and that the software solutions are of the highest quality. Responsibilities: Design, develop, and maintain Oracle Apex applications. Work with project managers and

Bekijk vacature »

.NET Developer

Functie omschrijving Ben jij een senior .NET developer en heb jij tevens ervaring als teamlead? Ben jij iemand met een helikopterview en denk jij graag mee met de klanten? Dan zijn wij op zoek naar jou! Voor een geweldig bedrijf zijn wij namelijk op zoek naar een ervaren .NET developer. Het bedrijf houdt zich bezig met het ontwerpen en bouwen van websites, portalen en applicaties voor met name zorg- en onderwijsinstellingen en overheidsinstanties. Jouw taken: Het fungeren als Lead Developer; Het meedenken met de business (dit vergt commercieel inzicht); Het begeleiden van diverse projecten (van klein tot groot); Het ontwerpen

Bekijk vacature »

.NET Developer

Functie omschrijving Jij gaat in de functie van Software Developer werken met C# en .NET framework. Jij gaat maatwerk software ontwikkelen en softwareoplossingen creëren. Daarnaast optimaliseer je de bestaande software. Oplossingen waar de klant echt iets aan heeft, jij krijgt er energie van op dit te realiseren. Je gaat werken in een Microsoft omgeving(ASP.NET) en gebruikt daarnaast C# en MVC. Samen met het huidige IT team binnen deze organisatie verwerk je de wensen van de klant tot een (eind)product. Bedrijfsprofiel Je komt te werken in een klein team van developers, die zich voornamelijk bezighouden met back-end development. Verder staat dit

Bekijk vacature »

Senior Node.js developer Digital Agency

Functie Door de groei van de organisatie zijn ze op zoek naar een Tech Lead. Als tech lead ben jij verantwoordelijk Als Back end Node.js developer kom je terecht in een van de 8 multidisciplinaire teams in het projectenhuis. Afhankelijk van jouw interesses, wensen en capaciteiten word je bij projecten en onderwerpen naar keuze betrokken. Als ervaren ontwikkelaar zul jij vaak leiding nemen in de projecten en in het team een aanvoerder zijn van technische discussies. Uiteindelijk wil jij natuurlijk de klantwensen zo goed mogelijk vertalen naar robuuste code. De projecten kunnen varieren van langlopende- tot kleinschalige trajecten. Voorheen werkte

Bekijk vacature »

Junior Back end developer PHP, Symfony

Functie Wij hebben onlangs onze eerste collega’s aangenomen, waardoor ons development team momenteel uit 4 personen bestaat. We bouwen onze software op basis van een PHP-framework (wat op zichzelf een Symfony framework is). Qua ontwikkeling focussen wij ons op 3 focus velden; – API-ontwikkeling/ Component Creatie – Implementatie – Framework ontwikkeling; het toevoegen van nieuwe functionaliteit of interne microservices Onze senior software engineer focust zich momenteel op de laatste twee punten, maar wij komen handen te kort op het eerste veld. Daarom zijn wij op zoek naar een enthousiaste junior software engineer die graag de kneepjes van het vak wil

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 »

Back-end developer

Functieomschrijving Voor een gewaardeerde werkgever in regio Tilburg zijn wij op zoek naar een gemotiveerde SQL Developer/ functioneel consultant. Jij wordt verantwoordelijk voor zowel het ontwerpen en implementeren van SQL-databases als voor het in kaart brengen van de bedrijfsprocessen van een organisatie en het vertalen van deze processen naar IT-oplossingen. Jouw takenpakket komt als volgt uit te zien: Ontwerp en implementatie van SQL-databases: Je ontwerpt, ontwikkelt en implementeert SQL-databases om de data behoeften van de organisatie te ondersteunen; Analyse van bedrijfsprocessen: Je analyseert de bedrijfsprocessen van de organisatie om de behoeften van de klant te begrijpen en te vertalen naar

Bekijk vacature »

Back-end Programmeur

Functieomschrijving Heb jij kort geleden je HBO ICT in ontvangst mogen nemen? Of ben je toe aan een nieuwe uitdaging? Voor een ambitieuze werkgever in de regio van Breda zijn wij op zoek naar een Back-end programmeur met affiniteit met C#.NET, SQL en MS Access. Samen met team bestaand uit ware ICT professionals ben je verantwoordelijk voor het bouwen van maatwerk software voor hun klanten. Belangrijk is dat je kennis of ervaring hebt van C#.NET en SQL. Je toont een flexibele en sociale houding naar klanten toe. Je denkt in nieuwe mogelijkheden & gaat graag de uitdaging aan. Bedrijfsprofiel De

Bekijk vacature »

Back End Developer

Als Back End developer bij KUBUS houd je je bezig met het ontwikkelen van de (web)applicatie en services van BIMcollab. Je hebt een focus op de back end van onze software, daarvoor werken wij hoofdzakelijk met C# en .NET. Wij hanteren een full-stack benadering, wat betekent dat je naast de back-end ook meehelpt bij andere onderdelen van de code. Als softwarebedrijf bevindt KUBUS zich in een unieke positie. We bouwen aan onze eigen producten die wereldwijd door tienduizenden gebruikers worden gebruikt. Ons bedrijf heeft precies de juiste grootte: groot genoeg om echt impact te maken in de markt, maar klein

Bekijk vacature »

PHP back-end developer gezocht!

Functie Werk je liever zonder druk en keiharde deadlines maar met de focus op kwaliteit? Dan kom je hier op de juiste plek terecht! In Het team bestaat momenteel uit 12 developers, hiernaast werken er collega’s van front-end, UX maar ook marketing/sales en support. In iedere sprint ontwikkel je samen functionaliteiten met als uitdaging om de klanten de beste gebruikerservaring te bieden. Ze bieden een werkplek waar je jezelf kunt blijven ontwikkelen, en mee te werken aan zowel bestaande als nieuwe mogelijkheden. Eisen • HBO werk- en denkniveau (ze kijken niet naar een papiertje) • Je denkt graag mee over

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/12/2024 23:29:48
 
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.