Я работаю над кодом PHP и, где это возможно, использую подготовленные операторы с отключенной эмуляцией подготовки PDO. Я повторно использую постоянные соединения для снижения накладных расходов, что также означает, что кеш плана запроса повторно используется в запросах до тех пор, пока повторно используется соединение.
Но мне было интересно явно задать имя для подготовленного оператора в соответствии с документацией MariaDB (и ее родственной документацией MySQL). Он отслеживает, что PDO будет внутренне выполнять запрос PREPARE stmt_name FROM preparable_stmt, и я хотел бы знать, есть ли какой-либо способ вручную установить stmt_name со стороны PHP. Или, альтернативно, какой-то способ получить назначенное имя через объекты PDO или PDOStatement.
Я уже рассмотрел PDOStatement::getAttribute, но там доступен только атрибут имени курсора, специфичный для FireBird и ODBC. Я также просмотрел дампы отладки несколькими способами, но, похоже, не смог найти фактическое зарегистрированное имя оператора.
В настоящее время работает на PHP 8.3/MariaDB 10.11
Подробнее здесь: https://stackoverflow.com/questions/798 ... ql-mariadb