【问题标题】:MySql #1243 error while executing it through phpMyAdmin通过 phpMyAdmin 执行 MySql #1243 错误
【发布时间】:2013-06-29 10:05:34
【问题描述】:

我正在尝试在 phpMyAdmin 中执行此代码。但是,我收到以下错误

#1243 - 未知的预编译语句处理程序 (stmt) 提供给 EXECUTE

    SET @sql = NULL;
SELECT
  GROUP_CONCAT(DISTINCT
    CONCAT(
      'count(distinct CASE WHEN topic = ''',
      topic,
      ''' THEN t2.id END) AS `',
      topic, '`'
    )
  ) INTO @sql
FROM
(
  select count(distinct id) total, topic
  from table2 
  group by topic
  order by total desc
  limit 2
) d;

SET @sql 
  = CONCAT('SELECT t1.year, ', @sql, ' 
            from table1 t1
            left join table2 t2
              on t1.id = t2.id
            group by t1.year');

PREPARE stmt FROM @sql;
EXECUTE stmt;
DEALLOCATE PREPARE stmt;

查看fiddle 以了解实施情况。

如何解决这个问题?此外,正如评论员所提到的,这将在通过脚本发送时起作用。任何想法如何在 PHP 中编写脚本?

【问题讨论】:

  • 嗨,2 年后,有什么解决办法吗?

标签: php mysql sql phpmyadmin


【解决方案1】:

这是因为 PMA 不使用相同的 mysql 会话来执行查询,这就是您收到错误的原因。

但是,如果您要在脚本中使用相同的 mysql 函数执行此操作,它应该可以工作。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-06-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-07-08
    • 1970-01-01
    • 2020-09-08
    相关资源
    最近更新 更多