Db query: Difference between revisions From Online Manual

Jump to: navigation, search
No edit summary
No edit summary
 
(3 intermediate revisions by 2 users not shown)
Line 3: Line 3:
|order_position=1
|order_position=1
|usage=$smcFunc['db_query'] (identifier, query, values, connection)
|usage=$smcFunc['db_query'] (identifier, query, values, connection)
|description=Works Similar to how db_query worked in 1.x versions.
|description=Executes a database query. Works similar to how db_query worked in SMF 1.x.
|parameters={{parmdesc
|parameters={{parmdesc
   |identifier|d1=is used to identify specific query types in which it is necessary to replace portions of the query for compatability across all Database Management Systems supported by SMF. The query must be written for MYSQL. The db_query function will alter the query.{{parmdesc
   |identifier|d1=is used to identify specific query types in which it is necessary to replace portions of the query for compatability across all Database Management Systems supported by SMF. The query must be written for MYSQL. The db_query function will alter the query.{{parmdesc
     |substring|d1=for the SQLite database, '''SUBSTRING''' will be replaced by '''SUBSTR'''
     |substring|d1=for the SQLite database, '''SUBSTRING''' will be replaced by '''SUBSTR'''
     |See the function smf_db_query|d2=in Subs-DB-<abbr title="mysql, postgresql, sqlite">{dbms}</abbr>.php for the full list of replacements.
     |See the function smf_db_query|d2=in Subs-Db-<abbr title="mysql, postgresql, sqlite">{dbms}</abbr>.php for the full list of replacements.
   }}
   }}
   |query|d2=the query to execute.
   |query|d2=the query to execute.
Line 34: Line 34:
);</nowiki>}}
);</nowiki>}}
}}
}}
 
 
<noinclude>
<noinclude>
[[Category:Database Functions]]
[[Category:Database Functions]]</noinclude>
[[Category:2.0]]
[[Category:Customizing SMF]]
[[Category:Developing SMF]]</noinclude>

Latest revision as of 15:53, 23 May 2013

Usage:

$smcFunc['db_query'] (identifier, query, values, connection)


Description: Executes a database query. Works similar to how db_query worked in SMF 1.x.

Parameters:

  • identifier is used to identify specific query types in which it is necessary to replace portions of the query for compatability across all Database Management Systems supported by SMF. The query must be written for MYSQL. The db_query function will alter the query.
    • substring for the SQLite database, SUBSTRING will be replaced by SUBSTR
    • See the function smf_db_query in Subs-Db-{dbms}.php for the full list of replacements.
  • query the query to execute.
  • values is an array of values you are intending to use in the query.
  • connection the database connection.

Return: a query resource or false on error.

Example:

$result = $smcFunc['db_query']('', '
	SELECT poster_time
	FROM {db_prefix}messages
	WHERE id_msg = {int:id_msg}
	LIMIT 1',
	array(
		'id_msg' => $user_settings['id_msg_last_visit'],
	)
);

Example with identifier 'substring':

$result = $smcFunc['db_query']('substring', '
	SELECT m.subject, 
		'. ($mylimit > 0 ? SUBSTRING(m.body, 1, '.$mylimit.') as body  : 'm.body'). ', 
		IFNULL(mem.real_name, m.poster_name) AS realName, m.poster_time as date, mem.avatar, mem.posts, mem.date_registered as dateRegistered,mem.last_login as lastLogin,
		IFNULL(a.id_attach, 0) AS ID_ATTACH, a.filename, a.attachment_type as attachmentType, t.id_board as category, b.name as category_name,
		array(
			'id_msg' => $user_settings['id_msg_last_visit'],
		)
	);



Advertisement: