1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192
|
<?xml version="1.0" encoding="utf-8"?>
<!-- $Revision: 330626 $ -->
<refentry xml:id="function.cubrid-query" xmlns="http://docbook.org/ns/docbook">
<refnamediv>
<refname>cubrid_query</refname>
<refpurpose>Send a CUBRID query</refpurpose>
</refnamediv>
<refsect1 role="description">
&reftitle.description;
<methodsynopsis>
<type>resource</type><methodname>cubrid_query</methodname>
<methodparam><type>string</type><parameter>query</parameter></methodparam>
<methodparam choice="opt"><type>resource</type><parameter>conn_identifier</parameter></methodparam>
</methodsynopsis>
<para>
<function>cubrid_query</function> sends a unique query (multiple queries are not supported) to the
currently active database on the server that's associated with the specified <parameter>conn_identifier</parameter>.
</para>
</refsect1>
<refsect1 role="parameters">
&reftitle.parameters;
<para>
<variablelist>
<varlistentry>
<term><parameter>query</parameter></term>
<listitem>
<para>
An SQL query
</para>
<para>
Data inside the query should be <link linkend="function.cubrid-real-escape-string">properly escaped</link>.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter>conn_identifier</parameter></term>
<listitem>
<para>
The CUBRID connection. If the connection identifier is not specified,
the last connection opened by <function>cubrid_connect</function> is
assumed.
</para>
</listitem>
</varlistentry>
</variablelist>
</para>
</refsect1>
<refsect1 role="returnvalues">
&reftitle.returnvalues;
<para>
For SELECT, SHOW, DESCRIBE, EXPLAIN and other statements returning resultset,
<function>cubrid_query</function> returns a <type>resource</type> on success, or &false; on error.
</para>
<para>
For other type of SQL statements, INSERT, UPDATE, DELETE, DROP, etc,
<function>cubrid_query</function> returns &true; on success or &false; on error.
</para>
<para>
The returned result resource should be passed to <function>cubrid_fetch_array</function>, and other
functions for dealing with result tables, to access the returned data.
</para>
<para>
Use <function>cubrid_num_rows</function> to find out how many rows were returned for a SELECT statement or
<function>cubrid_affected_rows</function> to find out how many rows were affected by a DELETE, INSERT, REPLACE, or UPDATE statement.
</para>
<para>
<function>cubrid_query</function> will also fail and return &false;
if the user does not have permission to access the table(s) referenced by the query.
</para>
</refsect1>
<refsect1 role="examples">
&reftitle.examples;
<para>
<example>
<title>Invalid Query</title>
<para>
The following query is syntactically invalid, so <function>cubrid_query</function> fails and returns &false;.
</para>
<programlisting role="php">
<![CDATA[
<?php
$conn = cubrid_connect('localhost', 33000, 'demodb');
$result = cubrid_query('SELECT * WHERE 1=1');
if (!$result) {
die('Invalid query: ' . cubrid_error());
}
?>
]]>
</programlisting>
</example>
</para>
<para>
<example>
<title>Valid Query</title>
<para>
The following query is valid, so <function>cubrid_query</function> returns a <type>resource</type>.
</para>
<programlisting role="php">
<![CDATA[
<?php
// This could be supplied by a user, for example
$firstname = 'fred';
$lastname = 'fox';
$conn = cubrid_connect('localhost', 33000, 'demodb');
cubrid_execute($conn,"DROP TABLE if exists friends");
cubrid_execute($conn,"create table friends(firstname varchar,lastname varchar,address char(24),age int)");
cubrid_execute($conn,"insert into friends values('fred','fox','home-1','20')");
cubrid_execute($conn,"insert into friends values('blue','cat','home-2','21')");
// Formulate Query
// This is the best way to perform an SQL query
// For more examples, see cubrid_real_escape_string()
$query = sprintf("SELECT firstname, lastname, address, age FROM friends WHERE firstname='%s' AND lastname='%s'",
cubrid_real_escape_string($firstname),
cubrid_real_escape_string($lastname));
// Perform Query
$result = cubrid_query($query);
// Check result
// This shows the actual query sent to CUBRID, and the error. Useful for debugging.
if (!$result) {
$message = 'Invalid query: ' . cubrid_error() . "\n";
$message .= 'Whole query: ' . $query;
die($message);
}
// Use result
// Attempting to print $result won't allow access to information in the resource
// One of the cubrid result functions must be used
// See also cubrid_result(), cubrid_fetch_array(), cubrid_fetch_row(), etc.
while ($row = cubrid_fetch_assoc($result)) {
echo $row['firstname'];
echo $row['lastname'];
echo $row['address'];
echo $row['age'];
}
// Free the resources associated with the result set
// This is done automatically at the end of the script
cubrid_free_result($result);
?>
]]>
</programlisting>
</example>
</para>
</refsect1>
<refsect1 role="seealso">
&reftitle.seealso;
<para>
<simplelist>
<member><function>cubrid_connect</function></member>
<member><function>cubrid_error</function></member>
<member><function>cubrid_real_escape_string</function></member>
<member><function>cubrid_result</function></member>
<member><function>cubrid_fetch_assoc</function></member>
<member><function>cubrid_unbuffered_query</function></member>
</simplelist>
</para>
</refsect1>
</refentry>
<!-- Keep this comment at the end of the file
Local variables:
mode: sgml
sgml-omittag:t
sgml-shorttag:t
sgml-minimize-attributes:nil
sgml-always-quote-attributes:t
sgml-indent-step:1
sgml-indent-data:t
indent-tabs-mode:nil
sgml-parent-document:nil
sgml-default-dtd-file:"~/.phpdoc/manual.ced"
sgml-exposed-tags:nil
sgml-local-catalogs:nil
sgml-local-ecat-files:nil
End:
vim600: syn=xml fen fdm=syntax fdl=2 si
vim: et tw=78 syn=sgml
vi: ts=1 sw=1
-->
|