Added docs for com.noccy.pdo.shell
							
								
								
									
										1
									
								
								Home.md
									
									
									
									
									
								
							
							
								
								
								
								
								
									
									
										
											
											
										
										
									
								
							
						
						
									
										1
									
								
								Home.md
									
									
									
									
									
								
							@@ -6,5 +6,6 @@ Welcome to the Wiki.
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
- [com.noccy.apiclient](com.noccy.apiclient) - API catalog and request helper
 | 
					- [com.noccy.apiclient](com.noccy.apiclient) - API catalog and request helper
 | 
				
			||||||
- [com.noccy.pdo](com.noccy.pdo) - PDO Database helpers
 | 
					- [com.noccy.pdo](com.noccy.pdo) - PDO Database helpers
 | 
				
			||||||
 | 
					- [com.noccy.pdo.shell](com.noccy.pdo.shell) - PDO Shell
 | 
				
			||||||
- [com.noccy.watcher](com.noccy.watcher) - Run scripts when files are modified
 | 
					- [com.noccy.watcher](com.noccy.watcher) - Run scripts when files are modified
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 
 | 
				
			|||||||
							
								
								
									
										78
									
								
								com.noccy.pdo.shell.md
									
									
									
									
									
										Normal file
									
								
							
							
								
								
								
								
								
									
									
										
											
											
										
										
									
								
							
						
						
									
										78
									
								
								com.noccy.pdo.shell.md
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,78 @@
 | 
				
			|||||||
 | 
					# PDO Shell Plugin
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					This is a plugin to work interactively with PDO.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					## Installation
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					Global installation (recommended, requires SPARK_PLUGINS environment):
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					1. Extract the plug into your global plugin directory (`$SPARK_PLUGINS`)
 | 
				
			||||||
 | 
					2. Go to your project directory and run `spark plugin --enable com.noccy.pdo.shell`
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					Local installation:
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					1. Extract the directory into `.spark/plugins`, like a savage.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					## Configuration
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					To define resorces using PHP, add this to the appropriate preloaded file:
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					```php
 | 
				
			||||||
 | 
					create_resource($name, $type, $uri);
 | 
				
			||||||
 | 
					```
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					You can also use the config file `.spark/resources.json`:
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					```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.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					```json
 | 
				
			||||||
 | 
					...
 | 
				
			||||||
 | 
					  "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]> 
 | 
				
			||||||
 | 
					
 | 
				
			||||||
		Reference in New Issue
	
	Block a user