Fonctions Paradox
PHP Manual

px_insert_record

(PECL paradox:1.4.0-1.4.1)

px_insert_recordInsère un enregistrement dans une base de données Paradox

Description

int px_insert_record ( resource $pxdoc , array $data )

Insert un nouvel enregistrement dans une base de données. L'enregistrement n'est pas nécessairement inséré à la fin de la base de données mais peut être inséré à n'importe quelle position libre trouvée.

Les données à enregistrer sont passées via un tableau de valeurs. Les éléments du tableau doivent correspondre aux champs de la base de données. Si le tableau a moins d'éléments que de champs dans la base de données, les champs restants seront définis à NULL.

La plupart des valeurs des champs peut être passée en tant que leurs équivalents PHP, e.g. une valeur longue est utilisée pour les champs de type PX_FIELD_LONG, PX_FIELD_SHORT et PX_FIELD_AUTOINC, une valeur double est utilisée pour les champs de type PX_FIELD_CURRENCY et PX_FIELD_NUMBER. Les valeurs de champs Blob et alpha sont passées en tant que chaînes de caractères.

Les champs de type PX_FIELD_TIME et PX_FIELD_DATE nécessitent une valeur longue. Dans le premier cas, ce sera le nombre de millisecondes depuis minuit. Dans le second cas, ce sera le nombre de jours depuis le 1.1.0000. Ci-dessous, deux exemples pour convertir la date courante ou le timestamp en une valeur compréhensible par les champs Paradox date/heure.

Note: Cette fonction est uniquement disponible si pxlib >= 0.6.0 est utilisé..

Liste de paramètres

pxdoc

Identifiant de ressource de base de données Paradox tel que retourné par la fonction px_new().

data

Un tableau associatif ou indexé contenant les valeurs des champs comme retournées par la fonction px_retrieve_record().

Valeurs de retour

Retourne le numéro de l'enregistrement inséré ou FALSE en cas d'erreur.

Exemples

Exemple #1 Définit les champs date/heure dans une base de données Paradox à la date/heure courant

<?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);
?>

L'exemple ci-dessus va afficher :

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

Le nombre de jours Julien tel que passé à la fonction jdtogregorian() a une base différente de 1.1.4714 b.c. et doit être calculé en ajoutant 1721425 au nombre de jours utilisé dans le fichier Paradox. Le fait de convertir le nombre de jours en timestamp est facile ; il suffit de multiplier ce nombre par 86400000.0 pour obtenir des millisecondes.

Voir aussi

px_update_record()


Fonctions Paradox
PHP Manual