Database class met PDO langzamer?
Ik ben bezig met het integreren van een class met PDO en ik heb het gevoel dat mijn site een stuk langzamer is.
Ligt het aan deze class?
Code (php)
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
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
<?php
class database{
var $dbh;
function connect(){
$hostname = "";
$database = "";
$username = "";
$password = "";
try {
$this->dbh = new PDO("mysql:host=".$hostname.";dbname=".$database.";",$username, $password);
}
catch(PDOException $e){
echo $e->getMessage();
}
}
function dbselect($sql){
$result = $this->dbh->query($sql);
if(count($result) == 1)
{
$result = $result->fetch(PDO::FETCH_OBJ);
}
elseif(count($result) > 1)
{
$result = $result->fetchall(PDO::FETCH_OBJ);
}
return $result;
}
function dbquery($sql){
$result = $this->dbh->exec($sql);
}
}
?>
class database{
var $dbh;
function connect(){
$hostname = "";
$database = "";
$username = "";
$password = "";
try {
$this->dbh = new PDO("mysql:host=".$hostname.";dbname=".$database.";",$username, $password);
}
catch(PDOException $e){
echo $e->getMessage();
}
}
function dbselect($sql){
$result = $this->dbh->query($sql);
if(count($result) == 1)
{
$result = $result->fetch(PDO::FETCH_OBJ);
}
elseif(count($result) > 1)
{
$result = $result->fetchall(PDO::FETCH_OBJ);
}
return $result;
}
function dbquery($sql){
$result = $this->dbh->exec($sql);
}
}
?>
Gewijzigd op 01/01/1970 01:00:00 door Yearupie Achternaamloos
Ik ben vooral nieuwsgierig waarom je een PDO::FETCH_BJ doet, gebruik je het daadwerkelijk als objecten? Ik vermoed dat je er veel betere een PDO::FETCH_ASSOC kunt gebruiken. Dat werkt in ieder geval een stuk sneller.
Ik denk sowieso niet dat een site merkbaar langzamer wordt met PDO, PDO is wel wat minder snel (door de uitgebreidheid ervan), maar dat zal (hooguit) in de tienden van seconden liggen. In benchmarks zal je het natuurlijk wel merken.
$row = $db->dbselect($sql);
in plaats van
$sql = mysql_query($sql);
$row = mysql_fetch_assoc($sql);
Dan kan het niet veel van snelheid verschillen?
En nog een vraagje,
Als je de OOP denkwijze wil gebruiken.
Moet je dan met FETCH_OBJ of kan dat ook gewoon FETCH_ASSOC zijn?
Want ik vind FETCH_ASSOC eigenlijk fijner typen.
Yearupie schreef op 21.12.2009 21:48:
En nog een vraagje,
Als je de OOP denkwijze wil gebruiken.
Moet je dan met FETCH_OBJ of kan dat ook gewoon FETCH_ASSOC zijn?
Want ik vind FETCH_ASSOC eigenlijk fijner typen.
Als je de OOP denkwijze wil gebruiken.
Moet je dan met FETCH_OBJ of kan dat ook gewoon FETCH_ASSOC zijn?
Want ik vind FETCH_ASSOC eigenlijk fijner typen.
Het gaat erom wat je met het resultaat doet. Ga je het daadwerkelijk als object met functies etc. dan kun je het omzetten naar een object. Gebruik je het alleen om even de gegevens te verzamelen dan is assoc goed. Het gaat er niet om wat fijner is om te typen maar wat je doel is.