Probleme PHP ORACLE

Résolu/Fermé
7amdolah Messages postés 17 Date d'inscription mercredi 2 janvier 2008 Statut Membre Dernière intervention 13 août 2014 - 11 déc. 2009 à 17:45
7amdolah Messages postés 17 Date d'inscription mercredi 2 janvier 2008 Statut Membre Dernière intervention 13 août 2014 - 16 déc. 2009 à 10:55
Bonjour,
Voila j'ai un problème je vous explique je travail sur un projet PHP est comme base donnée oracle.
Sur ma base j’ai une table avec une colonne de type date les valeurs insère sous forme ‘jj/mm/aaaa h:n:s’ EXM ('07/03/2009 02:59:10', '12/12/2009 14:00:00'….).
J’ai test é ma requet (‘SELECT MA_DATE FROM MA_TABLE’) avec TOAD FOR ORACLE le résulta est:
07/03/2009 02:59:10
12/12/2009 14:00:00
…..
Mais avec un script PHP le résulta est:
07/03/2009
12/12/2009
….
Mais moi je veux que le script affiche la date comme TOAD (07/03/2009 02:59:10) ;Voici le contenu de ma page:
<?php
$conn = oci_new_connect('test', ' test ', 'base');
if (!$conn) {
$e = oci_error();
print htmlentities($e['message']);
exit;
}
$query = " SELECT MA_DATE FROM MA_TABLE’";
$stid = oci_parse($conn, $query);
if (!$stid) {
$e = oci_error($conn);
print htmlentities($e['message']);
exit;
}
$r = oci_execute($stid, OCI_DEFAULT);
if (!$r) {
$e = oci_error($stid);
echo htmlentities($e['message']);
exit;
}
while ($row = oci_fetch_assoc($stid)) { 
echo($row[' MA_DATE']."<br/>");
}
oci_close($conn);
?>
A voir également:

2 réponses

Le concombre de Schrödinger
11 déc. 2009 à 18:29
Salut,

La date en oracle n'est qu'un champ date. Les différentes fonctions de formatage ne sont là qu'à l'intention des humains : présenter la date sous telle forme ou telle autre, comment la comprendre...
Le fait que tu récupères une expressions date depuis oracle fait travailler php avec une variable date.
Donc, pour afficher ces dates selon ton format préféré, tu dois utiliser le formatage php...
Mais je ne sais pas quelle fonction utiliser (je suis une bille en php) pour afficher ces dates selon ton format préféré.
D'après le manuel, j'aurais tendance à fouiller du côté de
echo date('d/m/Y H:i:s', $row[' MA_DATE']);
0
7amdolah Messages postés 17 Date d'inscription mercredi 2 janvier 2008 Statut Membre Dernière intervention 13 août 2014
16 déc. 2009 à 10:55
j'ai trouve la solution il faut ajoute
$query1 = "ALTER SESSION SET NLS_DATE_FORMAT='DD/MM/YYYY HH24:MI:SS'";
 $stid1 = oci_parse($conn, $query1);

$r1 =oci_execute($stid1, OCI_COMMIT_ON_SUCCESS);


====================================================

<?php
$conn = oci_new_connect('test', ' test ', 'base');
if (!$conn) {
$e = oci_error();
print htmlentities($e['message']);
exit;
}

$query1 = "ALTER SESSION SET NLS_DATE_FORMAT='DD/MM/YYYY HH24:MI:SS'";
$stid1 = oci_parse($conn, $query1);
$r1 =oci_execute($stid1, OCI_COMMIT_ON_SUCCESS);

$query = " SELECT MA_DATE FROM MA_TABLE’";
$stid = oci_parse($conn, $query);
if (!$stid) {
$e = oci_error($conn);
print htmlentities($e['message']);
exit;
}
$r = oci_execute($stid, OCI_DEFAULT);
if (!$r) {
$e = oci_error($stid);
echo htmlentities($e['message']);
exit;
}
while ($row = oci_fetch_assoc($stid)) { 
echo($row[' MA_DATE']."<br/>");
}
oci_close($conn);
?>
0
7amdolah Messages postés 17 Date d'inscription mercredi 2 janvier 2008 Statut Membre Dernière intervention 13 août 2014
11 déc. 2009 à 19:42
Merci pour votre repense mais la valeur retourne de type string sous forme 07/03/2009
J’ai créé un autre user et une autre table et le résulta est:
07/03/09
12/12/09
….
Je ne sais pas quoi faire :s :s :s
0