Hi,
Ik probeer het volgende te repliceren d.m.v PHP met PDO:
http://sqlfiddle.com/#!9/0a068/1
Helaas krijg ik het onder geen manier werkend, bijv:
Of als oorspronkelijk
Kan bovenstaande uberhaupt via PDO m.b.t werken met SQL variabelen en/of de meerdere queries (wat in eerste posting opgelost zou moeten zijn)?
Ik probeer het volgende te repliceren d.m.v PHP met PDO:
http://sqlfiddle.com/#!9/0a068/1
Helaas krijg ik het onder geen manier werkend, bijv:
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
| global $PDO; try { $query1 = "SET @sql = NULL; SELECT GROUP_CONCAT(DISTINCT CONCAT( 'MAX(IF(pa.fieldname = ''', fieldname, ''', pa.fieldvalue, NULL)) AS ', fieldname ) ) INTO @sql FROM product_additional"; $stmt1 = $PDO->prepare($query1); $stmt1 = $stmt1->execute(); $query2 = "SET @sql = CONCAT('SELECT p.id , p.name , p.description, ', @sql, ' FROM product p LEFT JOIN product_additional AS pa ON p.id = pa.id GROUP BY p.id');"; $stmt2 = $PDO->prepare($query2); $stmt2 = $stmt2->execute(); print_r($stmt2->debugDumpParams(), true); } catch (PDOException $e) { echo "Exeption: " .$e->getMessage(); $stmt2 = false; } |
Of als oorspronkelijk
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
| global $PDO; try { $query2 = "SET @sql = NULL; SELECT GROUP_CONCAT(DISTINCT CONCAT( 'MAX(IF(pa.fieldname = ''', fieldname, ''', pa.fieldvalue, NULL)) AS ', fieldname ) ) INTO @sql FROM product_additional; SET @sql = CONCAT('SELECT p.id , p.name , p.description, ', @sql, ' FROM product p LEFT JOIN product_additional AS pa ON p.id = pa.id GROUP BY p.id'); PREPARE stmt FROM @sql; EXECUTE stmt; DEALLOCATE PREPARE stmt;"; $stmt2 = $PDO->prepare($query2); $stmt2 = $stmt2->execute(); print_r($stmt2->debugDumpParams(), true); } catch (PDOException $e) { echo "Exeption: " .$e->getMessage(); $stmt2 = false; } |
Kan bovenstaande uberhaupt via PDO m.b.t werken met SQL variabelen en/of de meerdere queries (wat in eerste posting opgelost zou moeten zijn)?