Files
skript-db/README.md
T

75 lines
1.9 KiB
Markdown
Raw Normal View History

2019-06-22 12:11:29 -07:00
# skript-db
> Sensible SQL support for Skript.
---
2020-05-02 20:25:36 +03:00
### Expression `Data Source` => `datasource`
Stores the connection information for a data source. This should be saved to a variable in a
`script load` event or manually through an effect command.
The url format for your database may vary! The example provided uses a MySQL database.
#### Syntax
```
[the] data(base|[ ]source) [(of|at)] %string%
```
#### Examples
```
set {sql} to the database "mysql://localhost:3306/mydatabase?user=admin&password=12345&useSSL=false"
```
---
2017-11-18 19:49:49 -08:00
### Effect `Execute Statement`
2017-11-21 16:58:47 -08:00
Executes a statement on a database and optionally stores the result in a variable. Expressions
embedded in the query will be escaped to avoid SQL injection.
2020-05-02 20:25:36 +03:00
2017-11-21 16:58:47 -08:00
If a single variable, such as `{test}`, is passed, the variable will be set to the number of
affected rows.
2020-05-02 20:25:36 +03:00
2017-11-21 16:58:47 -08:00
If a list variable, such as `{test::*}`, is passed, the query result will be mapped to the list
variable in the form `{test::<column name>::<row number>}`
2020-07-31 11:52:58 +03:00
If `synchronously` is specified, the SQL query will be done on the current thread.
2017-11-18 19:49:49 -08:00
#### Syntax
2017-11-21 16:58:47 -08:00
```
2020-07-31 11:52:58 +03:00
[synchronously] execute %string% (in|on) %datasource% [and store [[the] (output|result)[s]] (to|in) [the] [var[iable]] %-objects%]
2017-11-21 16:58:47 -08:00
```
2017-11-18 19:49:49 -08:00
2017-11-21 16:58:47 -08:00
#### Examples
2017-11-18 19:49:49 -08:00
```
execute "select * from table" in {sql} and store the result in {output::*}
2017-11-21 16:58:47 -08:00
```
```
2020-05-02 20:25:36 +03:00
execute "select * from %{table variable}%" in {sql} and store the result in {output::*}
2017-11-18 19:49:49 -08:00
```
2017-11-18 19:52:52 -08:00
---
2017-11-21 16:58:47 -08:00
### Expression `Last Data Source Error` => `text`
Stores the error from the last executed statement, if there was one.
2017-11-18 19:49:49 -08:00
#### Syntax
```
2017-11-21 16:58:47 -08:00
[the] [last] (sql|db|data(base|[ ]source)) error
```
---
### Expression `Unsafe Expression` => `text`
Opts out of automatic SQL injection protection for a specific expression in a statement.
#### Syntax
```
unsafe %text%
```
#### Examples
```
execute "select %unsafe {columns variable}% from %{table variable}%" in {sql}
```
```
2017-11-18 19:49:49 -08:00
execute unsafe {fully dynamic query} in {sql}
```
2017-11-18 19:52:52 -08:00
---