Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/279.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在php中使用mysql查询_Php_Mysql - Fatal编程技术网

在php中使用mysql查询

在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

我想在php中使用一个sql查询

 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
连接到数据库并运行查询。