SET и SELECT в одном запросе (PDO)

200
18 июля 2018, 16:00

Можно ли присвоить переменную и выполнить SELECT не разбивая запрос на подзапросы?

$pdo = new PDO("mysql:host=localhost;dbname=test", 'root', '', [
    PDO::ATTR_DEFAULT_FETCH_MODE => PDO::FETCH_ASSOC,
    PDO::ATTR_PERSISTENT => false,
    PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION,
]);
$statement = $pdo->prepare("
    SET @PREV_STATE = @@GLOBAL.innodb_stats_on_metadata;            
    SET GLOBAL innodb_stats_on_metadata=0;
    SELECT 
        kcu.`TABLE_NAME` AS dstTable,
        kcu.`COLUMN_NAME` AS dstColumn
    FROM INFORMATION_SCHEMA.KEY_COLUMN_USAGE kcu
    WHERE kcu.REFERENCED_TABLE_SCHEMA = :schemaName
        AND kcu.REFERENCED_TABLE_NAME = :tableName
        AND kcu.REFERENCED_COLUMN_NAME = :columnName;
    SET GLOBAL innodb_stats_on_metadata=@PREV_STATE;
");
$statement->execute([
    ':schemaName' => 'test',
    ':tableName' => 'user',
    ':columnName' => 'user_id',
]);
print_r($statement->fetchAll(PDO::FETCH_ASSOC));

Такой код падает c SQLSTATE[HY000]: General error

READ ALSO
PDO возвращает SQLSTATE 00000

PDO возвращает SQLSTATE 00000

Не могу понять, почему pdo_mysql возвращает SQLSTATE 00000:

171
Бан при нажатии клавиш

Бан при нажатии клавиш

Как сделать чтобы по нажатии клавиш ctrl + u в пхп срабатывал код, который записывал вhtaccess айпи клиента, нажавшего эту кнопку?

231
Не работает функция FROM_BASE64

Не работает функция FROM_BASE64

Всем доброго времени сутокКогда пытаюсь вызвать функцию FROM_BASE64 в запросе, то выдает ошибку с текстом "#1305 - FUNCTION myDB

201
Получение токена Вконтакте

Получение токена Вконтакте

Заранее прошу прощения за ошибкиМне необходимо реализовать авторизацию Вконтакте

154