px_insert_record
(PECL paradox >= 1.4.0)
px_insert_record — Insère un enregistrement dans une base de données Paradox
Description
$pxdoc
, array $data
) : intInsère 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().
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.
Version en cache
26/12/2024 01:55:57 Cette version de la page est en cache (à la date du 26/12/2024 01:55:57) afin d'accélérer le traitement. Vous pouvez activer le mode utilisateur dans le menu en haut pour afficher la dernère version de la page.Document créé le 30/01/2003, dernière modification le 26/10/2018
Source du document imprimé : https://www.gaudry.be/php-rf-px-insert-record.html
L'infobrol est un site personnel dont le contenu n'engage que moi. Le texte est mis à disposition sous licence CreativeCommons(BY-NC-SA). Plus d'info sur les conditions d'utilisation et sur l'auteur.
Références
Ces références et liens indiquent des documents consultés lors de la rédaction de cette page, ou qui peuvent apporter un complément d'information, mais les auteurs de ces sources ne peuvent être tenus responsables du contenu de cette page.
L'auteur de ce site est seul responsable de la manière dont sont présentés ici les différents concepts, et des libertés qui sont prises avec les ouvrages de référence. N'oubliez pas que vous devez croiser les informations de sources multiples afin de diminuer les risques d'erreurs.