MySQL Workbench 包含一个插件,可以生成带有
mysqli
扩展名的 PHP 代码。本教程展示了如何使用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
PDO_MySQL
这个简单的插件生成 PHP 代码以使用 PHP 的扩展
创建 MySQL 连接。DSN 定义取决于 MySQL Workbench 中的连接类型。您可能要修改的部分在文本定义中。
要为连接生成 PHP 代码,首先按如下方式安装插件:
将插件代码复制到一个新文件中。本示例中使用的文件名为
php-pdo-connect_grt.py
,但您可以使用不同的名称,只要_grt.py
后缀为 即可。-
启动 MySQL 工作台。单击脚本,然后从菜单中单击安装插件/模块以打开文件浏览器。在本例中,选择上一步代码创建的插件文件
php-pdo-connect_grt.py
。笔记您可以将文件直接复制到插件文件夹,而不是使用安装插件/模块界面。结果是一样的。
出现提示时,重新启动 MySQL Workbench。
.pyc
此步骤从您的源文件生成一个已编译的字节码文件 ( )。在此示例中,它生成php-pdo-connect_grt.pyc
.-
重新启动 MySQL Workbench 后,加载用于生成 PHP 代码的 MySQL 连接。从菜单中,单击 Tools、 Utilities,然后 单击MySQL PDO(连接到服务器),这是
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(); }