MySQL Workbench 发行说明
MySQL Workbench 包含一个插件,该插件使用 mysqli
扩展生成 PHP 代码。本教程演示如何使用 PHP 的 PDO_MySQL
扩展生成代码。您可能选择不同的扩展或完全不同的语言,因此请相应地调整生成的代码。
首先,请查看以下示例中显示的插件代码。
# 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 代码,使用 PHP 的 PDO_MySQL
扩展创建 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 后,加载要用来生成 PHP 代码的 MySQL 连接。从菜单中点击
、 ,然后点击 ,这是插件代码中定义的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(); }