2010-07-12 11 views
0

J'ai un processus PHP exécuté à la suite d'une requête AJAX JavaScript, qui est potentiellement en cours d'exécution pendant un certain temps et produira des données de temps en temps. Du point de vue de la convivialité, j'aimerais pouvoir retourner les données au JavaScript dès qu'elles sont produites, mais cela ne semble pas possible. Ma solution est de l'écrire dans une base de données SQLite et d'avoir un autre script PHP qui s'exécute une fois par seconde (à la suite d'une autre requête AJAX) pour récupérer les données produites jusqu'à maintenant, permettant ainsi à l'utilisateur de être mis à jour sur les progrès de manière plus opportune. En supposant, alors, qu'il s'agisse d'une approche raisonnable, l'éditeur de données doit pouvoir ajouter une chaîne au contenu déjà existant d'une ligne. Je ne sais pas SQL bien, mais ce qui suit semble fonctionner:Concaténation d'une deuxième chaîne sur une ligne contenant déjà une chaîne

create table str_table (mystr string); 
insert into str_table (mystr) values ("first part of string."); 
update str_table set mystr = ((select mystr from str_table) || " Second part of string."); 

Y at-il une façon plus directe à ajouter à MyStr?

Le lecteur de données doit récupérer le contenu de mystr et l'effacer. Je suppose que je peux faire:

begin transaction 
select mystr from str_table; 
update str_table set mystr = null; 
end transaction 

mais est-il possible de le faire dans une seule déclaration?

Merci.

Répondre

0

Une requête UPDATE est la bonne façon de le faire, et il n'y a aucun moyen de mettre en place et de définir dans SQL.

+0

Ok merci pour les informations sur le get-and-set. – clothears

0

Vous devez utiliser une simple requête UPDATE. La concaténation de données supplémentaires dans un champ peut être effectuée comme suit:

UPDATE table SET field = field || " Second part of string." 

Cela ajoutera "Deuxième partie de chaîne". à la colonne de champ, pour chaque ligne de la table que vous avez spécifiée.

+0

Ah merci - c'est une excellente simplification! – clothears