使用 PhP 执行准备好的语句
Posted
技术标签:
【中文标题】使用 PhP 执行准备好的语句【英文标题】:Executing prepared statement with PhP 【发布时间】:2013-07-25 12:56:02 【问题描述】:我还是 php 的新手,我在这里有这样的声明:
SET @sql = NULL;
SELECT
GROUP_CONCAT(DISTINCT
CONCAT(
'GROUP_CONCAT(CASE WHEN `Date` = ''',
`Date`,
''' THEN hours ELSE NULL END) AS `',
`Date`, '`'
)
) INTO @sql
FROM Days;
SET @sql = CONCAT('SELECT Name, ', @sql,'
FROM Days
GROUP BY Name
');
PREPARE stmt FROM @sql;
EXECUTE stmt;
DEALLOCATE PREPARE stmt;
我正在尝试用 Php 执行它,所以我有与这个小提琴相同的 html 表:
http://sqlfiddle.com/#!2/37156/8
【问题讨论】:
【参考方案1】:当我使用这样的准备语句时,我会从 sql 所在的函数返回 fetchAll
。这会返回一个包含所有数据的数组。
然后我可以在 HTML 页面中按照我认为合适的方式对其进行格式化:
$data = nameOfYourFunctionThatReturnsFetchAll;
<?php echo '<li>' . $data['nameOfFieldFromDatabase'] . </li> ?>
等等等等
编辑:
<?php
function getData()
sql here
try
execute sql here
catch PDOException($e)
$e->getMessage();
return fetchAll();
然后
$data = getData();
然后在你的 HTML 中
<?php echo '<li>' . $data['name'] . </li> ?>
您需要知道 $data['name'] 中的值是指数据库中字段的名称,因此请确保它们匹配
【讨论】:
好的,我把整个语句放在 $data 变量中,然后执行: "整个语句变成一个变量" ?!把它放在一个函数中:) 然后从那个函数的结果创建变量。我会用我使用的示例更新答案。以上是关于使用 PhP 执行准备好的语句的主要内容,如果未能解决你的问题,请参考以下文章