Admin DSN
Have you ever wished you could retrieve data that is actually in TikiWiki's (or some other) database, but not organized or displayed on-screen in the way you'd like? The SQL plugin can be used to display the results of SELECT queries in a Wiki page. The plugin displays the results of the query in an attractively formatted table.
To use the SQL plugin, you must do the following:
- Use Admin DSN to define the database to be used by the SQL plugin.
- Place a SQL plugin statement in a Wiki page. Please see PluginSQL for instructions.
This page page shows you how to define a DSN so that the SQL plugin can access external data.
This documentation was originaly based on Tikiwiki 1.7.5 but has been succesfully used for TikiWiki 2.2.
Usage
How to Define a DSN
1. On the main Tiki menu, click Admin (if necessary to show the options below this menu item).
1.a. Under the Admin menu in some versions of tikiwiki you can click a link to "Admin DSN" ( tiki-admin_dsn.php
) to go there directly.
1.b. In more recent versions (works in 2.2) you should click "Admin Home". At the bottom of the Admin Home page you will see "More Links" and in the Text area features area click the link to "DSN".
2. You'll see the Admin DSN page, shown here:
3. In the Name area, type a name for the external database you want to use. The name cannot contain spaces.
4. In the DSN area, type a valid DSN. See "DSN Syntax," below.
5. Click Save.
DSN Syntax
To define the DSN, you need to specify:
- Database Type If you are using MySQL, the database type is mysql. If you are using Postgresql, the database type is "pgsql".
- User Supply the name of the user that is qualified to access the database server.
- Password Supply the password for the qualified user.
- Database name Supply the name of the database that contains the desired data.
Here's the syntax:
DSN format: database-type://user:password@host/database-name
Tutorial
In this example we are creating a DSN for the database tiki in host localhost using the user root and the password seldon. The DSN will be named cosa (as in "Cosa Nostra").
Here's how the DSN looks:
mysql://root:seldon@localhost/tiki
Permissions
When a DSN is created with name foo the permission tiki_p_dsn_foo is automatically created. Only users with that permission can use the DSN to create a query or view the results of a query using that DSN. For more information on the permissions aspect of the SQL plugin, see PluginSQL.
In older versions of tikiwiki this permission needed to be added manually in the users_permissions table and the following syntax was suggested:
INSERT INTO users_permissions (permName, permDesc, level, type, admin) VALUES ('tiki_p_dsn_localhost', 'Can query localhost', 'dsn', '', '');
It should not be needed in more recent versions (certainly 2.2 and above) but if you do need to add the permission manually consider using the following, which also sets the permission type:
INSERT INTO users_permissions (permName, permDesc, level, type, admin) VALUES ('tiki_p_dsn_localhost', 'Can query localhost', 'dsn', 'dsn', '');
See PluginSQL to learn how to insert SQL queries in Wiki pages.