ifx_query()
(PHP 4, PHP 5 < 5.2.1)
Send Informix query
说明
ifx_query(string $query,resource $link_identifier[,int $cursor_type[,mixed $blobidarray]]): resource
Sends a$queryto the currently active database on the server that's associated with the specified link identifier.
For "select-type" queries a cursor is declared and opened. Non-select queries are "execute immediate".
For either query type the number of(estimated or real)affected rows is saved for retrieval by ifx_affected_rows().
If the contents of the TEXT(or BYTE)column allow it, you can also useifx_textasvarchar(1)andifx_byteasvarchar(1). This allows you to treat TEXT(or BYTE)columns just as if they were ordinary(but long)VARCHAR columns for select queries, and you don't need to bother with blob id's.
Withifx_textasvarchar(0)orifx_byteasvarchar(0)(the default situation), select queries will return BLOB columns as blob id's(integer value). You can get the value of the blob as a string or file with the blob functions(see below).
参数
- $query
The query string.
- $link_identifier
The link identifier.
- $cursor_def
This optional parameter allows you to make this ascrolland/orholdcursor. It's a bitmask and can be either
IFX_SCROLL
,IFX_HOLD
, or both or'ed together. I you omit this parameter the cursor is a normal sequential cursor.- $blobidarray
If you have BLOB(BYTE or TEXT)columns in the query, you can add a$blobidarrayparameter containing the corresponding "blob ids", and you should replace those columns with a "?" in the query text.
返回值
Returns valid Informix result identifier on success, or FALSE
on errors.
范例
Example #1 Show all rows of the "orders" table as a HTML table
<?php ifx_textasvarchar(1); // use "text mode" for blobs $res_id = ifx_query("select * from orders", $conn_id); if (! $res_id) { printf("Can't select orders : %s\n<br />%s<br />\n", ifx_error(), ifx_errormsg()); die; } ifx_htmltbl_result($res_id, "border=\"1\""); ifx_free_result($res_id); ?>
Example #2 Insert some values into the "catalog" table
<?php // create blob id's for a byte and text column $textid = ifx_create_blob(0, 0, "Text column in memory"); $byteid = ifx_create_blob(1, 0, "Byte column in memory"); // store blob id's in a blobid array $blobidarray[] = $textid; $blobidarray[] = $byteid; // launch query $query = "insert into catalog (stock_num, manu_code, " . "cat_descr,cat_picture) values(1,'HRO',?,?)"; $res_id = ifx_query($query, $conn_id, $blobidarray); if (! $res_id) { /* ... error ... */ } // free result id ifx_free_result($res_id); ?>
参见
ifx_connect()
Open Informix server connection