db2_prepare

(PECL ibm_db2 >= 1.0.0)

db2_prepare Prepara un comando SQL para su ejecución

Descripción

db2_prepare ( resource $connection , string $statement [, array $options ] ) : resource

db2_prepare() Crea un comando SQL preparado que puede incluir 0 o más marcadores de parámetro (con el carácter ?) los cuales representan parámetros de entrada, salida o entrada/salida. Se pueden pasar parámetros al comando SQL preparado usando db2_bind_param(), o sólo para valores de entrada, como un arreglo enviado a db2_execute().

Hay tres ventajas principales al usar comandos SQL preparados en una aplicación:

  • Rendimiento: Cuando se prepara un comando SQL, el servidor de base de datos crea un plan de acceso optimizado para devolver datos con ese comando SQL. Posteriormente al enviar el comando SQL preparado a través de db2_execute() se podrá reutilizar el plan de acceso y así se evitará la sobrecarga que se produce cuando éste debe crearse nuevamente.

  • Seguridad: Cuando se prepara un comando SQL, se pueden incluir marcadores de parámetros para valores de entrada. Cuando se ejecuta ese comando usando los marcadores con valores de entrada, la base de datos puede chequear cada valor de entrada para asegurar que el tipo de dato enviado coincide con la definición del campo o del parámetro.

  • Funcionalidad avanzada: Los marcadores de parámetros no solo permiten pasar valores de entrada, además permiten obtener datos OUT e INOUT desde procedimientos almacenados usando db2_bind_param().

Parámetros

connection

Una variable de conexión obtenida con db2_connect() o con db2_pconnect().

statement

Un comando SQL, que puede contener opcionalmente uno o más marcadores de parámetros.

options

Un arreglo asociativo que contiene opciones para el comando. Se puede usar para solicitar un cursor desplazable en servidores que lo permitan.

Se pueden revisar las opciones en db2_set_option().

Valores devueltos

Si el comando SQL fue parseado y preparado exitosamente devuelve un resource, o FALSE en caso de producirse un error. Se puede determinar qué error ocurrió utilizando db2_stmt_error() o db2_stmt_errormsg().

Ejemplos

Ejemplo #1 Preparando y ejecutando un comando SQL con marcadores de parámetros.

El siguiente ejemplo prepara un comando INSERT que acepta cuatro marcadores de parámetros, y luego ejecuta iteraciones sobre un arreglo que contiene los valores de entrada, y éstos son enviados a través de db2_execute().

<?php
$animals 
= array(
    array(
0'cat''Pook'3.2),
    array(
1'dog''Peaches'12.3),
    array(
2'horse''Smarty'350.0),
);

$insert 'INSERT INTO animals (id, breed, name, weight)
    VALUES (?, ?, ?, ?)'
;
$stmt db2_prepare($conn$insert);
if (
$stmt) {
    foreach (
$animals as $animal) {
        
$result db2_execute($stmt$animal);
    }
}
?>

Ver también