Php 运行动态PREPARE语句
目前我正在试验 我需要基本的想法来运行下面的动态sql 表:Php 运行动态PREPARE语句,php,mysql,laravel,phalcon,Php,Mysql,Laravel,Phalcon,目前我正在试验 我需要基本的想法来运行下面的动态sql 表: +----+---------+---------------+--------+ | id | item_id | property_name | value | +----+---------+---------------+--------+ | 1 | 1 | color | blue | | 2 | 1 | size | large | | 3 |
+----+---------+---------------+--------+
| id | item_id | property_name | value |
+----+---------+---------------+--------+
| 1 | 1 | color | blue |
| 2 | 1 | size | large |
| 3 | 1 | weight | 65 |
| 4 | 2 | color | orange |
| 5 | 2 | weight | 57 |
| 6 | 2 | size | large |
| 7 | 3 | size | small |
| 8 | 3 | color | red |
| 9 | 3 | weight | 12 |
| 10 | 4 | color | violet |
| 11 | 4 | size | medium |
| 12 | 4 | weight | 34 |
| 13 | 5 | color | green |
| 14 | 5 | weight | 10 |
+----+---------+---------------+--------+
问题是
SET @sql = NULL;
SELECT
GROUP_CONCAT(DISTINCT
CONCAT(
'MAX(IF(property_name = ''',
property_name,
''', value, NULL)) AS ',
property_name
)
) INTO @sql
FROM properties;
SET @sql = CONCAT('SELECT item_id, ', @sql, ' FROM properties GROUP BY item_id');
PREPARE stmt FROM @sql;
EXECUTE stmt;
DEALLOCATE PREPARE stmt;
问题:如何从控制器(任何框架或pdo)运行此语句并获取获取的结果..
编辑
事实上,我在做一个产品数据库。需要来自前端的功能\u id。参数的数目未知。所以,我正在考虑基于参数创建动态查询。为什么不在@MySQL server上创建一个过程,并使用PDO调用该过程<代码>$pdo->查询(“调用过程_name()”代码>。这比从PDO执行以上所有操作要容易得多。我对这个过程不太熟悉。此外,参数的数量是未知的。我还需要提供需要动态创建的where条件。任何其他建议?按照@Mjh建议创建的程序。