Общая ошибка с PDO и SQL создает временную таблицу

Я использую php PDO, и у меня возникает эта ошибка, когда я использую запрос ниже,

SQLSTATE[HY000]: General error

запрос,

            CREATE TEMPORARY TABLE temp_tb 
            SELECT * FROM person;

            ALTER TABLE temp_tb 
            DROP type;
            SELECT * 
            FROM temp_tb AS p

            LEFT JOIN user AS u
            ON p.person_id = u.person_id

            LEFT JOIN category AS c
            ON u.category_id = c.category_id

            WHERE u.signature = ?

Их запрос состоит в том, чтобы создать временную таблицу, а затем удалить столбец из этой временной таблицы, а затем соединить ее с другими таблицами.

Он возвращает результат OK, когда я запрашиваю его непосредственно в phpMyAdmin, но не через PDO. Что-то я сделал не так в запросе или PDO? Как я могу обойти это?

ИЗМЕНИТЬ:

ЗОП,

public function fetch_object($query, $params = array())
    {
        try
        {
            # prepare the query
            $stmt = $this->connection->prepare($query);

            # if $params is not an array, let's make it array with one value of former $params
            if (!is_array($params)) $params = array($params);

            # execute the query
            $stmt->execute($params);

            # return the result
            return $stmt->fetchObject();
            //return $stmt->fetch(PDO::FETCH_OBJ);
        }
        catch (PDOException $e) 
        {
            # call the get_error function
            $this->get_error($e);
        }
    }

$user = $this->database->fetch_object($sql,$authenticated_user);

ошибка,

SQLSTATE[HY000]: общая ошибка


person laukok    schedule 12.03.2012    source источник
comment
Запрос, вероятно, правильный, если он выполняется безупречно. Что бы ни случилось в вашем коде PDO, только вы можете знать...   -  person Álvaro González    schedule 12.03.2012


Ответы (1)


Проблема в том, что вы используете несколько запросов в одном вызове (создаете временную таблицу, изменяете ее, а затем выбираете из нее). Прочитайте о нескольких запросах в одном вызове здесь

person a.tereschenkov    schedule 12.03.2012
comment
Спасибо за ответ. Теперь я знаю, какие ошибки я совершил. - person laukok; 12.03.2012