Intereting Posts
Неполный класс PHP при сериализации объекта в сеансах Функция Smarty Object с ассоциативным массивом Неожиданный «=>», ожидаемый один из: «», «», «)», Magento Admin> Система> Конфигурация> Дополнительно> Система – Неустранимая ошибка это PHP str_word_count () многобайтовый сейф? mysql_escape_string VS mysql_real_escape_string Как совместить строки с двойными кавычками, используя php Как реализовать красноречивые события в laravel с использованием commmon Trait для всех моделей Laravel JavaScript передаёт массив из backend в массив в JavaScript В чем разница между переменными сеанса и глобальными переменными в php? Session_ID продолжает меняться при обновлении; Cookie не отправляется в браузер Условная помощь PHP Drupal (6.19) cron исчерпывает память при индексировании поиска URL-адрес перенаправления API-интерфейса API-интерфейса Google Analytics Вызов программы через shell_exec с использованием ввода текста utf-8 PHP eval и фиксация ошибок (насколько это возможно)

Столбец Mysql полностью работает в PhpMyadmin, но не с Php mysqli_query ()

У меня этот динамический запрос MYSQL, создающий сводную таблицу, которая работает в phpmyadmin (и SequelPro):

SET SESSION group_concat_max_len = 1000000; SET @sql = NULL; SELECT GROUP_CONCAT(DISTINCT 'MAX(CASE WHEN meta_key = "lat_poi" THEN meta_value END) AS lat_poi, MAX(CASE WHEN meta_key = "lng_poi" THEN meta_value END) AS lng_poi' ) INTO @sql FROM wp_postmeta; SET @sql = CONCAT('SELECT posts.post_title, ', @sql, ' FROM wp_posts posts LEFT JOIN wp_postmeta postmeta ON posts.ID = postmeta.post_id WHERE (posts.post_type = "poi" AND posts.post_status = "publish") GROUP BY posts.ID '); PREPARE stmt FROM @sql; EXECUTE stmt; 

Я хочу использовать его в Php для запроса базы данных, но он дает эту ошибку:

 string(226) "You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'SET @sql = NULL; SELECT GROUP_CONCAT(DISTINCT 'MAX(CASE WHEN meta_key = ' at line 2" bool(false) 

Вот код Php:

 $connection = mysqli_connect("localhost", "db_name", "db_pwd", "db_user"); $query_expression = " SET SESSION group_concat_max_len = 1000000; SET @sql = NULL; SELECT GROUP_CONCAT(DISTINCT 'MAX(CASE WHEN meta_key = \"lat_poi\" THEN meta_value END) AS lat_poi, MAX(CASE WHEN meta_key = \"lng_poi\" THEN meta_value END) AS lng_poi' ) INTO @sql FROM wp_postmeta; SET @sql = CONCAT('SELECT posts.post_title, ', @sql, ' FROM wp_posts posts LEFT JOIN wp_postmeta postmeta ON posts.ID = postmeta.post_id WHERE (posts.post_type = \"poi\" AND posts.post_status = \"publish\") GROUP BY posts.ID '); PREPARE stmt FROM @sql; EXECUTE stmt;"; $query = mysqli_query($connection, $query_expression); var_dump(mysqli_error($connection)); var_dump($query); 

Любой намек?

Заранее спасибо…

    Это не запрос, а набор запросов.

    Разделите его на отдельные заявления и запустите их один за другим

     mysqli_query($connection, "SET SESSION group_concat_max_len = 1000000"); mysqli_query($connection, "SET @sql = NULL"); $query_expression = "SELECT..."; $query = mysqli_query($connection, $query_expression);