PDO Probleem
Heey,
Ik ben maar eens bezig gegaan met PDO.
Alleen, ik heb een probleem. (natuurlijk)
Ik heb een query
Leuk en aardig :)
De waardes haal ik uit een array,
En weetje wat ik kreeg?
Alle velden met 11 (id van die regel).
Ik heb al van alles geprobeerd, maar hoe los ik dit op, dus dat elke waarde zijn eigen waarde krijgt. Dit komt overigens omdat de laatste $val (=11) gebruikt worden in elke $val omdat het in bindParam ook wordt gebruikt (zie php.net)
Weet iemand hier een goede oplossing voor?
in de execute de array doorsturen werkt niet, overigens.
Alvast bedankt!
Als ik dit weet kan ik weer verder :)
mvg,
Han
Ik ben maar eens bezig gegaan met PDO.
Alleen, ik heb een probleem. (natuurlijk)
Ik heb een query
Code (php)
1
2
3
4
5
6
7
8
9
2
3
4
5
6
7
8
9
// Dit is mijn $sql
UPDATE
tabel
SET
naam = :naam,
kop = :kop,
text = :text
WHERE
id = :id
UPDATE
tabel
SET
naam = :naam,
kop = :kop,
text = :text
WHERE
id = :id
Leuk en aardig :)
De waardes haal ik uit een array,
Code (php)
En weetje wat ik kreeg?
Alle velden met 11 (id van die regel).
Ik heb al van alles geprobeerd, maar hoe los ik dit op, dus dat elke waarde zijn eigen waarde krijgt. Dit komt overigens omdat de laatste $val (=11) gebruikt worden in elke $val omdat het in bindParam ook wordt gebruikt (zie php.net)
Weet iemand hier een goede oplossing voor?
in de execute de array doorsturen werkt niet, overigens.
Alvast bedankt!
Als ik dit weet kan ik weer verder :)
mvg,
Han
Edit::
Hoe kan je zien wat de totale query wordt van die je klaargemaakt hebt voordat je hem execute? (misschien weet iemand dit?) op google kon ik niet echt vinden.
Gewijzigd op 01/01/1970 01:00:00 door Han eev
Die execute() moet in je foreach (klik)
edit: je constructie klopt niet helemaal klik even op die link om te zien hoe het wel moet...
edit: je constructie klopt niet helemaal klik even op die link om te zien hoe het wel moet...
Gewijzigd op 01/01/1970 01:00:00 door Jan geen
Je hebt helemaal gelijk, dat is idd mijn probleem :)
Je moet aangeven naar welke var hij moet kijken, en dan ga je die vullen voordat je execute doet. :)
Thnx!
Je moet aangeven naar welke var hij moet kijken, en dan ga je die vullen voordat je execute doet. :)
Thnx!
Sorry, als ik zo vroeg 'bump', tis niet echt bumpen ^^.
Maarja,
Probleem met exucute(array $waardes)
Het gaat goed als ik letterlijk de array uitschrijf en die meegeef in de execute.
Maar als ik de array laat genereren. (door mijn form handler). en die mee geef, dan doet hij niets. Het rare is dat execute false terug geeft. dus er gaat iets fout, maar errorInfo geeft 00000 terug. Ook krijg ik geen exception oid.
Wat doe ik fout?
Dus letterlijk array uitschrijven en meegeven gaat goed, array zelf maken en meegeven gaat fout.
Wat doe ik verkeert?
Gr Han
Maarja,
Probleem met exucute(array $waardes)
Het gaat goed als ik letterlijk de array uitschrijf en die meegeef in de execute.
Maar als ik de array laat genereren. (door mijn form handler). en die mee geef, dan doet hij niets. Het rare is dat execute false terug geeft. dus er gaat iets fout, maar errorInfo geeft 00000 terug. Ook krijg ik geen exception oid.
Wat doe ik fout?
Dus letterlijk array uitschrijven en meegeven gaat goed, array zelf maken en meegeven gaat fout.
Wat doe ik verkeert?
Gr Han
var_dump beide arrays eens, en zoek de verschillen :)
Dat is nou juist het rare, want die zijn er niet, ik heb ze precies hetzelfde gemaakt! Ik snap er niets van.
Hardcoded doet het, zelf gemaakt niet...
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
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
// Werkt niet.
Array
(
[:kop] => titel
[:type] => 0
[:text] =>
werkt dit?1212
[:img] =>
[:WHid] => 11
)
Werkt wel.
Array
(
[:kop] => titel
[:img] =>
[:text] => werkt dit?
[:WHid] => 11
[:type] => 0
)
Array
(
[:kop] => titel
[:type] => 0
[:text] =>
werkt dit?1212
[:img] =>
[:WHid] => 11
)
Werkt wel.
Array
(
[:kop] => titel
[:img] =>
[:text] => werkt dit?
[:WHid] => 11
[:type] => 0
)
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
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
<?PHP
// SQL parsen
public function parseSQL($sql,$data) {
$prep = self::$pdo->prepare($sql);
// Lopen en Binden
$arr = array();
foreach($data as $key => $val) {
$arr[':'.$key] = $val;
}
// $arr = array(':kop'=>'titel',':img'=>'',':text'=>'werkt dit?',':WHid'=>11,':type'=>'0'); // Deze werkt dus wel, maar die data erboven niet
// Fout
$res = $prep->execute($arr);
if($res === false) {
$err = self::$pdo->errorInfo();
self::Adderr($err[2] . ' - SQL:'. Overig::ColorSQL($sql));
} else {
return true;
}
}
?>
// SQL parsen
public function parseSQL($sql,$data) {
$prep = self::$pdo->prepare($sql);
// Lopen en Binden
$arr = array();
foreach($data as $key => $val) {
$arr[':'.$key] = $val;
}
// $arr = array(':kop'=>'titel',':img'=>'',':text'=>'werkt dit?',':WHid'=>11,':type'=>'0'); // Deze werkt dus wel, maar die data erboven niet
// Fout
$res = $prep->execute($arr);
if($res === false) {
$err = self::$pdo->errorInfo();
self::Adderr($err[2] . ' - SQL:'. Overig::ColorSQL($sql));
} else {
return true;
}
}
?>
Hardcoded doet het, zelf gemaakt niet...
Toch maar even een soort van Bump...
Zelfde probleem, en wat vinden jullie van
Het gebruik van references? (het '&' tekentje?)
Gebruiken jullie dat veel, of raden jullie het helemaal af?
gr Han
Zelfde probleem, en wat vinden jullie van
Het gebruik van references? (het '&' tekentje?)
Gebruiken jullie dat veel, of raden jullie het helemaal af?
gr Han
In PHP5 is alles standaard by reference dus heb je het & tekentje niet meer nodig.
Ik weet zo uit mijn hoofd niet zeker of de volgorde van de parameters in je gegevensarray uitmaakt of niet.
In je voorbeeld zijn volgorde van de parameters in beide arrays niet hetzelfde. Je zou verwachten dat dit niets uitmaakt, maar proberen kan natuurlijk nooit kwaad...
In je voorbeeld zijn volgorde van de parameters in beide arrays niet hetzelfde. Je zou verwachten dat dit niets uitmaakt, maar proberen kan natuurlijk nooit kwaad...
Na veel gepruts toch gelukt :)
wat het nu precies is, ik heb echt geen idee.
Maar bedankt voor de Opmerkingen!
Maar volgens mij is niet alles reference, want dat zou beetje fout zijn...
Want dan zal dit niet goed gaan, en dat gaat het wel.
Dus :)
wat het nu precies is, ik heb echt geen idee.
Maar bedankt voor de Opmerkingen!
Maar volgens mij is niet alles reference, want dat zou beetje fout zijn...
Want dan zal dit niet goed gaan, en dat gaat het wel.
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
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
Dus :)




