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(); }