From the reference libraryFiveM

Prepare

ox/oxmysql/Functions/prepare.mdx

Prepare

Prepare can be used to execute frequently called queries faster and accepts multiple sets of parameters to be used with a single query.

  • Date will not return the datestring commonly used in FiveM
  • TINYINT 1 and BIT will not return a boolean
  • You can only use ? value placeholders, ?? column placeholders and named placeholders will throw an error

Unlike rawExecute, the SELECT statement will return a column, row, or array of rows depending on the number of columns and rows selected.

Promise

    local response = MySQL.prepare.await('SELECT `firstname`, `lastname` FROM `users` WHERE `identifier` = ?', {
        identifier
    })

    print(json.encode(response, { indent = true, sort_keys = true }))
    ```

  
  

    ```js
    const response = await MySQL.prepare('SELECT `firstname`, `lastname` FROM `users` WHERE `identifier` = ?', [
      identifier
    ])

    console.log(JSON.stringify(response))
    ```

  

**Aliases**

- `exports.oxmysql.prepare_async`

## Callback

```lua
    MySQL.prepare('SELECT `firstname`, `lastname` FROM `users` WHERE `identifier` = ?', {
        identifier
    }, function(response)
        print(json.encode(response, { indent = true, sort_keys = true }))
    end)
    ```

  
  

    ```js
    MySQL.prepare('SELECT `firstname`, `lastname` FROM `users` WHERE `identifier` = ?', [
      identifier
    ], (response) => {
      console.log(JSON.stringify(response))
    })
    ```

  

**Aliases**

- `exports.oxmysql.prepare`
Back to documentation