在php中使用mysql查询
我想在php中使用一个sql查询在php中使用mysql查询,php,mysql,Php,Mysql,我想在php中使用一个sql查询 SET @sql = NULL; SELECT GROUP_CONCAT(DISTINCT CONCAT( 'max(CASE WHEN ca.date = ''', date_format(date, '%Y-%m-%d'), ''' THEN coalesce(p.s
SET @sql = NULL;
SELECT
GROUP_CONCAT(DISTINCT
CONCAT(
'max(CASE WHEN ca.date = ''',
date_format(date, '%Y-%m-%d'),
''' THEN coalesce(p.status, ''P'') END) AS `',
date_format(date, '%Y-%m-%d'), '`'
)
) INTO @sql
FROM calendar
where date>='2013-06-01'
and date <= '2013-06-05';
SET @sql
= CONCAT('SELECT ca.studentname,
ca.rollno,
ca.class, ', @sql, '
from
(
select c.date, a.studentname, a.rollno, a.class
from calendar c
cross join tbl_admission a
) ca
left join tbl_absentees p
on ca.rollno = p.rollno
and ca.date = p.date
where ca.date>=''2013-06-01''
and ca.date <= ''2013-06-05''
group by ca.studentname, ca.rollno, ca.class
order by ca.rollno');
PREPARE stmt FROM @sql;
EXECUTE stmt;
DEALLOCATE PREPARE stmt;
SET@sql=NULL;
挑选
组_CONCAT(不同
海螺(
'最大值(ca.date=''时的情况),
日期格式(日期,%Y-%m-%d'),
''然后合并(p.status,'p''END)为'''',
日期\格式(日期,'%Y-%m-%d'),'`
)
)进入@sql
从日历
其中日期>='2013-06-01'
和dateMySQL PREPARE和EXECUTE语句仅在MySQL存储程序中受支持。例如,创建过程
语句
要从PHP运行MySQL查询,需要选择要使用的数据库库(mysqli或PDO),PHP代码需要建立到MySQL服务器的连接。对于这两个库,准备SQL语句、执行SQL语句和获取结果(对于SELECT)的模式类似,但语法有点不同。(语法还取决于您是编写面向对象的样式,还是编写面向过程的样式。)
你发布的MySQL代码非常奇怪
- 将NULL分配给用户定义的变量@sql
- 执行SELECT语句以填充udv@sql
- 将CONCAT函数的结果分配给相同的udv@sql
- 调用PREPARE和EXECUTE动态执行语句
- 在获取任何结果之前关闭准备好的语句
我不确定我是否理解你的要求
在PHP中
- 连接到数据库
- 准备第一个SELECT语句
- 执行该语句
- 获取一行,将返回的值存储到PHP变量中
- 结束声明
- 使用PHP字符串连接操作将另一个SQL语句串到一个PHP变量中
- 根据PHP变量的内容准备SQL语句
- 执行SQL语句
- 获取一些行(?在MySQL示例中未看到此步骤)
- 结束声明
最好使用该sql代码在MySQL数据库中创建一个存储过程,然后通过php调用该过程。欢迎使用。请阅读,因此这不是一个免费的编码、教程、图书馆查找或代码转换服务。您必须表明您已经做出了一些努力来解决您自己的问题。您所说的如何将mysql查询转换为php查询
?您需要通过mysqli
或PDO
连接到数据库并运行查询。