PHP Unconference Europe 2015

px_insert_record

(PECL paradox >= 1.4.0)

px_insert_recordInserta registro en base de datos paradox

Descripción

int px_insert_record ( resource $pxdoc , array $data )

Inserta un nuevo registro en la base de datos. El registro no será necesariamente insertado al final de la base de datos, puede ser insertado en cualquier posición dependiendo en donde se encuentre la primera ranura libre.

Los datos del registro se pasan como una matriz de valores de campo. Los elementos en la matriz debe corresponder a los campos de la base de datos. Si la matriz tiene menos elementos que los campos en la base de datos, los campos restantes se establecerán a null.

La mayoría de los valores de campo se puede pasar como su tipo php equivalente, por ejemplo, un valor long se utiliza para campos de tipo PX_FIELD_LONG, PX_FIELD_SHORT y PX_FIELD_AUTOINC, un valor double se utiliza para campos de tipo PX_FIELD_CURRENCY y PX_FIELD_NUMBER. Los valores de campo para los campos blob y alfa se pasan como cadenas.

Los campos de tipo PX_FIELD_TIME y PX_FIELD_DATE requieren ambos un valor long. En el primer caso este es el número de milisegundos desde la medianoche. En el segundo caso es el número de días desde el 1.1.0000. A continuación hay dos ejemplos para convertir la fecha actual o marca de tiempo en un valor adecuado para unos campos de fecha/hora en paradox.

Nota:

Esta función sólo está disponible si se utiliza pxlib >= 0.6.0.

Parámetros

pxdoc

Identificador de recursos de la base de datos paradox devuelto por la función px_new().

data

Matriz asociado o indexada que contiene los valores de campo como, por ejemplo, devuelto por la función px_retrieve_record().

Valores devueltos

Devuelve FALSE en caso de fallo o el número de registro en caso de éxito.

Ejemplos

Ejemplo #1 Establece los campos fecha/hora en una base de datos paradox a la fecha/hora actual

<?php
$px 
px_new();
$fp fopen("test.db""w+");
px_create_fp($px$fp, array(array("timestamp""@"), array("time""T"), array("date""D")));

$curdate getdate();
$jd gregoriantojd($curdate["mon"], $curdate["mday"], $curdate["year"]);
$days $jd 1721425/* Number of days between 1.1.4714 b.c. and 1.1.0000 */
$secs $curdate["hours"]*3600 $curdate["minutes"]*60 $curdate["seconds"];
px_insert_record($px, array($days*86400000.0 $secs*1000.0$secs*1000.0$days));

$curtimestamp microtime(true);
$days = (int) ($curtimestamp/86400);
$secs $curtimestamp - ($days 86400.0);
$days += 2440588/* Number of days between 1.1.4714 b.c. and 1.1.1970 */
$days -= 1721425/* Number of days between 1.1.4714 b.c. and 1.1.0000 */
px_insert_record($px, array($days*86400000.0 $secs*1000.0$secs*1000.0$days));
for(
$i=0$i<2$i++) {
    
$rec px_retrieve_record($px$i);
    echo 
px_timestamp2string($px$rec["timestamp"], "n/d/Y H:i:s")."\n";
    echo 
px_date2string($px$rec["date"], "n/d/Y")."\n";
}
px_close($px);
px_delete($px);
?>

El resultado del ejemplo sería:

2/21/2006 21:42:30
2/21/2006
2/21/2006 20:42:30
2/21/2006

La cuenta de la fecha juliana pasada a la función jdtogregorian() tiene una base diferente de 1.1.4714 a. C. y por lo tanto debe calcularse añadiendo 1721425 a la cuenta de días utilizados en el archivo paradox. En cuanto el número de días en una fecha y hora se hace fácilmente multiplicando por 86400000.0 para obtener milisegundos.

Ver también

px_update_record() - Actualizar el registro en la base de datos paradox

add a note add a note

User Contributed Notes

There are no user contributed notes for this page.
To Top