2009-05-20 5 views
0

Je reçois un XML via php: // input et après l'utilisation de simpleXML pour décomposer les éléments en variables et ensuite ce que je veux faire est d'ajouter un tableau, ou créer un tableau des variables toutes les 30 secondes environ.Mise à jour d'un tableau avant l'insertion de MySQL?

La raison est que ce script recevra des entrées régulières, et plutôt que de faire des tas de mises à jour ou d'insertions mySQL, je suppose que cela pourrait être meilleur pour l'efficacité.

Donc, quelques questions si quelqu'un a un moment.

1) existe-t-il un moyen de vérifier une nouvelle entrée sur l'entrée php: //. 2) Y a-t-il une meilleure façon de faire cette vérification de répétition que la fonction de veille? 3) comment ajouter/ajouter à un tableau avec ces variables de mise à jour?

Je ne suis pas allé trop loin encore, le code est donc pas utile, mais si vous pouvez me pardonner simpleness: -

function input() { 

    $xml = new SimpleXMLElement($input); 

    $session_id = $xml->session_id; 
    $ip = $xml->ip; 
    $browser = $xml->browser; 

    store($session_id, $ip, $browser); 
    } 

function store() { 
    $session_id = array(); 
    $ip = array(); 
    $browser = array(); 
} 

Répondre

0

Si je vous comprends bien, il semble que vous essayez d'utiliser PHP pour un programme avec état à long terme. Je crois que vous savez ce qui suit: Les programmes PHP ne durent généralement pas plus de quelques millisecondes, au plus quelques secondes pour l'application Web typique. Chaque fois qu'une ressource est demandée au gestionnaire PHP, l'analyse commence à nouveau et il n'y a pas d'état de programme qui reste de l'exécution précédente. Étant un environnement sans état, c'est à vous de maintenir l'état. Pour cette raison, PHP n'est pas fait pour gérer les entrées qui changent avec le temps, ou pour maintenir un état.

Cela dit, la façon la plus simple d'ajouter à un tableau est le follwing:

$myarray[] = "newvalue"; 

ou

$myarray['newkey'] = "newvalue"; 

Pour traiter le flux:

while (!feof($handle)){ $data = fgets($handle, 4096); } 
+0

Bonne réponse, je J'ai fini par faire ça différemment ... écrire dans un fichier à la place et ensuite mettre à jour mySQL plus tard. – waxical