FuelPHP — Как мне выполнить пользовательский многострочный оператор MySQL?

Как выполнить инструкцию SQL, которая выполняет несколько действий?

Когда я пытаюсь выполнить следующий код, я получаю сообщение об ошибке Fuel\Core\Database_Exception [ 1064 ]: You have an error in your SQL syntax;

PHP со встроенным MySQL

$sql = "
    SET @sql = CONCAT(
        'CREATE TEMPORARY TABLE IF NOT EXISTS temp_compiled_properties AS
        (SELECT
            id, 
            ', @sql, '
        FROM properties
        WHERE properties.property_id = ?
        GROUP BY properties.property_id)');

    PREPARE stmt FROM @sql;
    EXECUTE stmt USING @property_id;
    DEALLOCATE PREPARE stmt;";  

    DB::query($sql)->execute();

person zechdc    schedule 24.10.2013    source источник


Ответы (1)


На данный момент вы не можете.

Вы можете обойти это, выбрав текущее соединение с базой данных и напрямую используя собственные вызовы PHP.

$db = \DB::instance()->connection();
$result = $db->exec($sql); // for PDO

Afaik, собственные драйверы MySQL вообще не поддерживают несколько операторов.

person WanWizard    schedule 17.12.2013