insert querys
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
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 public function dbInsert($sTable, $aFieldList) {
try {
if (!($sTable and is_string($sTable))) {
$sMsg = sprintf('Geen tabelnaam in %s. (param=%s:"%s")'
,__METHOD__
,gettype($sTable)
,$sTable);
throw new PDOException($sMsg);
}
elseif (!($aFieldList and is_array($aFieldList))) {
$sMsg = sprintf('Geen fieldlist in %s. (param=%s:"%s")'
,__METHOD__
,gettype($aFieldList)
,$aFieldList);
throw new PDOException($sMsg);
}
// alle parameters in orde
$this->sql = sprintf('insert into %s (%s) values (%s)'
,$sTable
,implode(',', array_keys($aFieldList))
,':'.implode(',:', array_keys($aFieldList)));
$stmt = parent::prepare($this->sql);
$stmt->execute($aFieldList);
$this->insertID = parent::lastInsertId();
return $this->insertID;
}
catch(PDOException $e) {
$this->_dbError($e);
}
}?>
try {
if (!($sTable and is_string($sTable))) {
$sMsg = sprintf('Geen tabelnaam in %s. (param=%s:"%s")'
,__METHOD__
,gettype($sTable)
,$sTable);
throw new PDOException($sMsg);
}
elseif (!($aFieldList and is_array($aFieldList))) {
$sMsg = sprintf('Geen fieldlist in %s. (param=%s:"%s")'
,__METHOD__
,gettype($aFieldList)
,$aFieldList);
throw new PDOException($sMsg);
}
// alle parameters in orde
$this->sql = sprintf('insert into %s (%s) values (%s)'
,$sTable
,implode(',', array_keys($aFieldList))
,':'.implode(',:', array_keys($aFieldList)));
$stmt = parent::prepare($this->sql);
$stmt->execute($aFieldList);
$this->insertID = parent::lastInsertId();
return $this->insertID;
}
catch(PDOException $e) {
$this->_dbError($e);
}
}?>
de code hier boven gebruik ik om insert querys te doen.
maar nu krijg ik nog steeds en error als er een ' in me text zit.
maar ik gebruik toch echt eerst prepare.
Gewijzigd op 01/01/1970 01:00:00 door RvW Of toch niet
Gesponsorde koppelingen:
En wat zou prepare() moeten doen? Wanneer ik een prepare gebruik, dan maak ik een query met parameters aan en ga vervolgens de bijbehorende waardes opgeven. Ik mis hier een functie die de waardes toevoegt, dat doe je nu wanneer je $this->sql aanmaakt. Deze sql is dan alleen niet goed, echo hem maar eens. Vervolgens kun je gaan preparen tot je een ons weegt, een foute query blijft een foute query.
Ik zie trouwens niet het nut van dynamische insert-queries, maar dat ligt wellicht meer aan mij dan aan het nut... ;)
Ik zie trouwens niet het nut van dynamische insert-queries, maar dat ligt wellicht meer aan mij dan aan het nut... ;)
zo je me mischien en duwtje in de goeie richting kunnen geven hoe ik deze functie goed werkend krijg.
over het nut valt idd te discussieren, maar ik vind prettig werken =)
edit:
volgens mij heb ik het al.
ben echt kippig moet gewoon de waardes $pdo->quote($waarde) doen......
over het nut valt idd te discussieren, maar ik vind prettig werken =)
edit:
volgens mij heb ik het al.
ben echt kippig moet gewoon de waardes $pdo->quote($waarde) doen......
Gewijzigd op 01/01/1970 01:00:00 door RvW Of toch niet



