C.6.1 Урок: Генерация PHP-кода для создания подключения с PDO_MySQL
MySQL Workbench включает плагин, который генерирует PHP-код с расширением mysqli. Этот урок показывает, как сгенерировать код с расширением PDO_MySQL для PHP. Возможно, вы выберете другое расширение или другой язык, поэтому соответствующим образом скорректируйте сгенерированный код.
Для начала ознакомьтесь с кодом плагина, показанным в следующем примере.
# import the wb module
from wb import DefineModule, wbinputs
# import the grt module
import grt
# import the mforms module for GUI stuff
import mforms
# define this Python module as a GRT module
ModuleInfo = DefineModule(name= "MySQLPDO", author= "Yours Truly", version="1.0")
@ModuleInfo.plugin("info.yourstruly.wb.mysqlpdo", caption= "MySQL PDO (Connect to Server)", input= [wbinputs.currentSQLEditor()], pluginMenu= "SQL/Utilities")
@ModuleInfo.export(grt.INT, grt.classes.db_query_Editor)
def mysqlpdo(editor):
"""Copies PHP code to connect to the active MySQL connection using PDO, to the clipboard.
"""
# Values depend on the active connection type
if editor.connection:
conn = editor.connection
if conn.driver.name == "MysqlNativeSocket":
params = {
"host" : "",
"port" : "",
"user" : conn.parameterValues["userName"],
"socket" : conn.parameterValues["socket"],
"dbname" : editor.defaultSchema,
"dsn" : "mysql:unix_socket={$socket};dbname={$dbname}"
}
else:
params = {
"host" : conn.parameterValues["hostName"],
"port" : conn.parameterValues["port"] if conn.parameterValues["port"] else 3306,
"user" : conn.parameterValues["userName"],
"socket" : "",
"dbname" : editor.defaultSchema,
"dsn" : "mysql:host={$host};port={$port};dbname={$dbname}"
}
text = """$host="%(host)s";
$port=%(port)s;
$socket="%(socket)s";
$user="%(user)s";
$password="";
$dbname="%(dbname)s";
try {
$dbh = new PDO("%(dsn)s", $user, $password));
} catch (PDOException $e) {
echo 'Connection failed: ' . $e->getMessage();
}
""" % params
mforms.Utilities.set_clipboard_text(text)
mforms.App.get().set_status_text("Copied PHP code to clipboard")
return 0
Этот простой плагин генерирует PHP-код для создания подключения к MySQL с использованием расширения PHP PDO_MySQL. Определение DSN зависит от типа подключения в MySQL Workbench. Часть, которую вы можете захотеть изменить, находится в текстовом определении.
Чтобы сгенерировать PHP-код для подключения, сначала установите плагин следующим образом:
Скопируйте код плагина в новый файл. Имя файла в этом примере —
php-pdo-connect_grt.py, но вы можете использовать другое имя, при условии, что_grt.py— это суффикс.-
Запустите MySQL Workbench. Нажмите Сценарии, а затем Установить плагин/модуль в меню, чтобы открыть файловый браузер. Выберите файл плагина, созданный кодом на предыдущем шаге, в этом случае
php-pdo-connect_grt.py.ПримечаниеВы можете скопировать файл напрямую в папку плагинов вместо использования интерфейса Установить плагин/модуль. Результат будет тем же.
После запроса перезапустите MySQL Workbench. На этом шаге из вашего исходного файла генерируется скомпилированный байт-код (
.pyc). В этом примере этоphp-pdo-connect_grt.pyc.-
После перезапуска MySQL Workbench загрузите подключение MySQL, которое нужно использовать для генерации PHP-кода. В меню нажмите , , а затем , что является
Caption, определенным в коде плагина.Это действие копирует сгенерированный PHP-код в буфер обмена вашей системы. В следующем примере подключения «sakila» определяется как база данных по умолчанию в сгенерированном коде.
$host="localhost"; $port=3306; $socket=""; $user="root"; $password=""; $dbname="sakila"; try { $dbh = new PDO("mysql:host={$host};port={$port};dbname={$dbname}", $user, $password)); } catch (PDOException $e) { echo 'Connection failed: ' . $e->getMessage(); }
© 2025 Oracle
Licensed under the GPLv2 License.
https://docs.oracle.com/cd/E17952_01/workbench-en/wb-tutorial-plugins-php-pdo.html