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
