2010-08-08 4 views
2

dans mon code php5 Je souhaite utiliser la fonction UNIX_TIMESTAMP pour convertir un datetime en un horodatage unix sans utiliser le code php pour convertir car je crois que cette méthode est plus rapide mais comment obtenir l'horodatage unix rowset-à-dire comment indexer dans l'ensemble de lignes pour obtenir l'horodatage unix entier surRequête d'utilisation UNIX_TIMESTAMP

Voici un résumé du schéma de base de données

age int(5) 
user varchar(256)  
created timestamp CURRENT_TIMESTAMP 

$query="SELECT user, UNIX_TIMESTAMP(created) FROM accounts WHERE age='$age'" ; 
$result = mysql_query($query) or die ('Error querying domain'); 

while($row = mysql_fetch_array($result)) 
{ 
$callerid = $row['callerid']; 
$created_ts = $row['created']; 
etc.... 

Répondre

4

Ou utilisez AS clause pour donner à votre colonne nom plus descriptif comme ceci:

UNIX_TIMESTAMP(created) AS ucreated 

Et vous pouvez l'obtenir comme:

while($row = mysql_fetch_array($result, MYSQL_ASSOC)) { 

    $created_ts = $row['ucreated']; 
............ 

Plus d'infos:

1

Par défaut (MYSQL_BOTH), mysql_fetch_array vous donne les indices numériques et associatifs. Ainsi, vous pouvez faire:

$created_ts = $row[1]; 

Ou, donnez-lui un nom:

$query="SELECT user, UNIX_TIMESTAMP(created) AS created_ts FROM accounts WHERE age='$age';"; 
// ... 
$created_ts = $row['created_ts']; 

Notez également que si age provient de l'entrée d'utilisateur, vous devez utiliser mysql_real_escape_string avant concaténer. Ou passez à un framework (comme PDO ou MySQLi) qui supporte les instructions préparées.

2

Utilisez alias SELECT user, UNIX_TIMESTAMP(created) AS created FROM accounts

Questions connexes