TWiki
>
TWiki Web
>
DatabasePlugin
(2024-03-02,
TWikiAdminUser
)
(raw view)
E
dit
A
ttach
Tags:
create new tag
view all tags
---+!! Database Plugin <!-- Contributions to this plugin are appreciated. Please update the plugin page at http://twiki.org/cgi-bin/view/Plugins/DatabasePlugin or provide feedback at http://twiki.org/cgi-bin/view/Plugins/DatabasePluginDev. If you are a TWiki contributor please update the plugin in the SVN repository. --> <sticky><div style="float:right; background-color:#EBEEF0; margin:0 0 20px 20px; padding: 0 10px 0 10px;"> %TOC{title="Page contents"}% </div></sticky> Provide secure access (read and write) to data in an SQL database, with flexible results formatting. Any database that has a CPAN:DBI interface can be used. ---++ Usage ---+++ DATABASE_SQL =%<nop>DATABASE_SQL{description="table_description" sql="sql"}%= This is the most general of the commands. It allows you to execute arbitrary SQL statements, and provides flexible formatting of the results. * =description= - identifies the database configuration to use (required) * =sql= - The SQL to execute (required) * =format= - (optional) Format to display results in. if you don't give this parameter results will be ignored. * =header= - (optional) The header to display on the results table. * =separator= - string that separates results. Default newline. If the SQL statement doesn't return a result (e.g. an =UPDATE= statement) you must *not* give a =format= parameter. The =format= parameter is a string describing the required format for the results, where each =$colname= will expand to the value of that column. See %SYSTEMWEB%.FormattedSearch for more on how =format=, =header= and =separator= work. ---+++ DATABASE_SQL_TABLE =%<nop>DATABASE_SQL_TABLE{description="db1" headers="hdr1,hdr2,hdr3" command="sql command"}%= * =description= - identifies the database configuration to use * =headers= - Table headers. * =command= - Any SQL command that returns rows * %X% This syntax is maintained for compatibility. You are recommended to use DATABASE_SQL instead. ---+++ DATABASE_SQL_REPEAT =%<nop>DATABASE_SQL_REPEAT{description="description" command="..SQL COMMAND.." columns="col1,col2,col3"}% .... user formatting .... %<nop>DATABASE_SQL_REPEAT%= * =description= - identifies the database configuration to use * =columns= - The columns in the table to return. Default "*" * =command= - Any SQL command that returns values * %X% This syntax is maintained for compatibility. You are recommended to use DATABASE_SQL instead. ---+++ DATABASE_TABLE =%<nop>DATABASE_TABLE{description="table_description" headers="hdr1,hdr2,hdr3" columns="col1,col2,col3"}%= * =description= - identifies the database+table configuration to use (required) * =columns= - The columns in the table to return. Default "*" * =headers= - Table headers * %X% This command *requires* a table to be specified in the configuration. * %X% This syntax is maintained for compatibility. You are recommended to use DATABASE_SQL instead. ---+++ DATABASE_REPEAT =%<nop>DATABASE_REPEAT{description="table_description" table="mytable" columns="col1,col2,col3"}% .... user formatting .... %<nop>DATABASE_REPEAT%= * =description= - identifies the database+table configuration to use * =columns= - The columns in the table to return. Default "*" * %X% This command *requires* a table to be specified in the configuration. * %X% This syntax is maintained for compatibility. You are recommended to use DATABASE_SQL instead. ---+++ DATABASE_EDIT =%<nop>DATABASE_EDIT{description="table_description" display_text="HTML link text"}%= Creates a frame and invokes an external database editor. * =description= - identifies the database configuration to use * =display_text= - (optional) The columns in the table to return ---++ Examples =%<nop>DATABASE_SQL{description="mysql_user_info" format="| $User | $Select_priv |" header="| <nop>*User Name* | <nop>*Select Privs* |"}%= You will get back a table with one row for each matching database entry. Using the =format= functionality, you can define how the database data is displayed wrapping it in any formatting you choose. For example, if you wanted to create a single table cell containing the information for 3 fields of the Kalendus calendar, you could use the following: =%<nop>DATABASE_SQL{description="calendar_events" sql="SELECT * from calendar" format="| $startdate $subject $body |"}%= Or let's say you wanted to display the next two upcoming scheduled events in the Kalendus calendar. =%<nop>DATABASE_SQL{description="calendar_events" command="SELECT subject,body,startdate FROM kalendus_event WHERE to_days(startdate) > to_days(now()) order by startdate limit 2" format="$startdate<br />$subject<br />$body"}%= ---++ Plugin Installation Instructions * For an __automated installation__, run the [[%SCRIPTURL{configure}%][configure]] script and follow "Find More Extensions" in the in the __Extensions__ section. * See the [[http://twiki.org/cgi-bin/view/Plugins/BuildContribInstallationSupplement][installation supplement]] on TWiki.org for more information. * Or, follow these __manual installation__ steps: * Download the ZIP file from the extension home on twiki.org (see below). * Unzip ==%TOPIC%.zip== in your twiki installation directory. * Set the ownership of the extracted directories and files to the webserver user. * Install the dependencies (if any). * Plugin __configuration and testing__: * Run the [[%SCRIPTURL{configure}%][configure]] script and enable the plugin in the __Plugins__ section. * Configure additional plugin settings in the __Extensions__ section if needed. * Test if the installation was successful using the examples provided. * Use =configure= to set up the plugin. ---++ Plugin Info * One line description, is shown in the %SYSTEMWEB%.TextFormattingRules topic: * Set SHORTDESCRIPTION = Provide access to data in a SQL database | Plugin Author: | TWiki:Main.TaitCyrus | | Copyright: | © 2002-2007 TWiki:Main.TaitCyrus <br /> © 2007-2021 TWiki:TWiki.TWikiContributor | | License: | GPL ([[http://www.gnu.org/copyleft/gpl.html][GNU General Public License]]) | | Plugin Version: | 2021-04-11 | | Change History: | <!-- versions below in reverse order --> | | 2021-04-11: | TWikibug:Item7927: Copyright update to 2021 | | 2019-12-26: | TWikibug:Item7851: Allow DATABSE_SQL to span multiple lines -- TWiki:Main.SteffenLoeffler | | 2011-11-11: | TWikibug:Item6800: Fix for using qw(...) as parentheses, which is deprecated in Perl 5.14 -- TWiki:Main.PeterThoeny | | 2011-05-14: | TWikibug:Item6701: Small fix in Config.spec -- TWiki:Main.PeterThoeny | | 2011-02-19: | TWikibug:Item6638: Doc improvements; changing TWIKIWEB to SYSTEMWEB -- TWiki:Main.PeterThoeny | | 17 Sep 2007 | Bugs:Item4343 Minor corrections to Config.spec - TWiki:Main.CrawfordCurrie | | 18 March 2007 | Rewritten for efficiency and clarity, and added DATABASE_SQL - TWiki:Main.CrawfordCurrie | | 5 May 2003 (v1.3) | Add support for the primary DB to be in a local file instead of in a DB. It is acknowledged that this reduces security somewhat<BR>Also added support for Oracle (by adding in the concept of a SID) | | 20 Mar 2002 (v1.2) | Added table editing ability | | 18 Feb 2002 (v1.11): | Removed hard coded $debug=1; | | 16 Feb 2002 (v1.1): | Added the two REPEAT functions | | 20 Jan 2002 (v1.0): | Initial version | | CPAN Dependencies: | CPAN:DBI | | Other Dependencies: | phpmyadmin (optional, to support DATABASE_EDIT) | | Perl Version: | 5.0 (tested with 5.6.1 [mysql] and 5.8.0 [Oracle and Local] ) | | Plugin Home: | http://TWiki.org/cgi-bin/view/Plugins/%TOPIC% | | Feedback: | http://TWiki.org/cgi-bin/view/Plugins/%TOPIC%Dev | __Related Topics:__ %SYSTEMWEB%.TWikiPreferences, %SYSTEMWEB%.TWikiPlugins
E
dit
|
A
ttach
|
Watch
|
P
rint version
|
H
istory
: r2
<
r1
|
B
acklinks
|
V
iew topic
|
Ra
w
edit
|
M
ore topic actions
Topic revision: r2 - 2024-03-02
-
TWikiAdminUser
TWiki
Log In
or
Register
TWiki Web
Users
Groups
Index
Search
Changes
Notifications
RSS Feed
Statistics
Preferences
User Reference
ATasteOfTWiki
TextFormattingRules
TWikiVariables
FormattedSearch
QuerySearch
TWikiDocGraphics
TWikiSkinBrowser
InstalledPlugins
Admin Maintenance
Reference Manual
AdminToolsCategory
InterWikis
ManagingWebs
TWikiSiteTools
TWikiPreferences
WebPreferences
Categories
Admin Documentation
Admin Tools
Developer Doc
User Documentation
User Tools
Webs
Blog
TWiki
ZMobile
Copyright © 1999-2025 by the contributing authors. All material on this collaboration platform is the property of the contributing authors.
Ideas, requests, problems regarding TWiki?
Send feedback
Note:
Please contribute updates to this topic on TWiki.org at
TWiki:TWiki.DatabasePlugin
.