Table of Contents
PDO Shell Plugin
This is a plugin to work interactively with PDO.
Installation
Global installation (recommended, requires SPARK_PLUGINS environment):
- Extract the plug into your global plugin directory (
$SPARK_PLUGINS
) - Go to your project directory and run
spark plugin --enable com.noccy.pdo.shell
Local installation:
- Extract the directory into
.spark/plugins
, like a savage.
Configuration
To define resorces using PHP, add this to the appropriate preloaded file:
create_resource($name, $type, $uri);
You can also use the config file .spark/resources.json
:
{
"resources": {}
}
Resources are defined with the name as the key, and the full connection URI
as the value. The URI should contain the resource type as well as the resource
URI separated by a plus sign, in this case pdo+mysql
, pdo+sqlite
etc.
...
"db": "pdo+mysql://user:pass@host:port/dbname"
...
You can also create a temporary in-memory SQLite database by using pdo+sqlite:
Usage
The simplest use is invoking the shell directly:
$ spark pdo:shell
PDO[db]>
You are presented with a prompt containing the string "PDO", follwed by the currently
selected resource in brackets. Commands start with a period (.
) and you can get a
list of the valid commands with .help
.
To run a query, you can either run it directly:
PDO[db]> SELECT id FROM users WHERE username='bob'
Or let the shell do the escaping for you:
PDO[db]> .query "SELECT id FROM users WHERE username=?" bob
You can also read the commands from a file and have them executed as if they were entered into the shell:
$ spark pdo:shell -r sparkrc
Selecting the resource
This can be done from the command line:
$ spark pdo:shell --db otherdb
Or from within the shell:
PDO[db]> .select otherdb
PDO[otherdb]>