v5:reference:connection:param
Differences
This shows you the differences between two versions of the page.
| Both sides previous revisionPrevious revisionNext revision | Previous revision | ||
| v5:reference:connection:param [2020/01/25 00:33] – [Usage] Improve code layout, add comment for param reset dregad | v5:reference:connection:param [2021/02/26 01:35] (current) – Call with falsy values: param(false) vs param(0) - see #682 dregad | ||
|---|---|---|---|
| Line 14: | Line 14: | ||
| This method is used with [[v5: | This method is used with [[v5: | ||
| - | On RDBMS with positional (numbered) query parameters such as PostgreSQL, calling '' | + | On RDBMS with positional (numbered) query parameters such as PostgreSQL, calling '' |
| + | |||
| + | <WRAP tip> | ||
| + | Note that calling '' | ||
| + | |||
| + | Compare that with '' | ||
| + | |||
| + | This is illustrated in the examples below. | ||
| + | </ | ||
| + | |||
| ------------------------------ | ------------------------------ | ||
| Line 23: | Line 33: | ||
| <code php> | <code php> | ||
| $sql1 = ' | $sql1 = ' | ||
| - | . ' | + | . 'name = ' |
| . 'total = ' . $db-> | . 'total = ' . $db-> | ||
| - | $db-> | + | // Reset param count as a standalone operation then build the query |
| + | $db-> | ||
| $sql2 = ' | $sql2 = ' | ||
| + | |||
| + | // Reset param count with a " | ||
| + | $sql3 = ' | ||
| + | . 'name = ' . $db-> | ||
| + | . ' | ||
| </ | </ | ||
| + | |||
| + | |||
| See below for the code's output with various database drivers. | See below for the code's output with various database drivers. | ||
| Line 36: | Line 54: | ||
| $sql1: SELECT * FROM accounts WHERE name = ? AND total = ? | $sql1: SELECT * FROM accounts WHERE name = ? AND total = ? | ||
| $sql2: SELECT * FROM accounts WHERE id = ? | $sql2: SELECT * FROM accounts WHERE id = ? | ||
| + | $sql3: SELECT * FROM accounts WHERE name = ? AND status = ? | ||
| </ | </ | ||
| Line 41: | Line 60: | ||
| < | < | ||
| $sql1: SELECT * FROM accounts WHERE name = :account AND total = :amount | $sql1: SELECT * FROM accounts WHERE name = :account AND total = :amount | ||
| - | $sql2: SELECT * FROM accounts WHERE id = :id" | + | $sql2: SELECT * FROM accounts WHERE id = :id |
| + | $sql3: SELECT * FROM accounts WHERE name = :0 AND status = :1 | ||
| </ | </ | ||
| Line 48: | Line 68: | ||
| $sql1: SELECT * FROM accounts WHERE name = $1 AND total = $2 | $sql1: SELECT * FROM accounts WHERE name = $1 AND total = $2 | ||
| $sql2: SELECT * FROM accounts WHERE id = $1 | $sql2: SELECT * FROM accounts WHERE id = $1 | ||
| + | $sql3: SELECT * FROM accounts WHERE name = $1 AND status = $2 | ||
| </ | </ | ||
| + | |||
| + | Without the parameter reset, //$sql2// would be '' | ||
v5/reference/connection/param.1579908788.txt.gz · Last modified: by dregad
