Une des possibilités est que vous manquez de mémoire: en stockant toutes les lignes d'un tableau, vous aurez besoin de beaucoup de mémoire avant même d'arriver à la partie mise à jour - dans ce cas, cela explique entièrement pourquoi vous ne voyez aucun changement; le script n'arrive jamais à cette partie.
Une autre possibilité est que votre script runs for too long et est arrêté. En fonction de la configuration de votre serveur, set_time_limit peut être une option dans ce cas.
Cependant, l'effet du script que vous nous montrez ici est exactement le même que cette seule requête:
UPDATE `table` SET pass = 'pass'
puisque vous avez pas de conditions sur les lignes de la sélection, et le seul filtrage vous faire est de ne pas stocker plusieurs lignes avec la même valeur dans la colonne de la ligne - mais quand vous arrivez à la carte de mise à jour, vous identifions chaque ligne via la colonne de la ligne, ce qui signifie qu'il mettra à jour toutes les lignes avec la même valeur dans la colonne de la ligne . Si les valeurs de ligne sont uniques pour chaque ligne, il n'est pas nécessaire de vérifier si vous avez déjà vu la ligne; Si ce n'est pas unique, alors vous avez besoin d'un critère différent lors de la mise à jour.
Si vous exécutez la mise à jour directement, PHP ne sera pas nécessaire d'utiliser une tonne de mémoire et MySQL ne doivent rechercher chaque ligne individuelle lors de la mise à jour; il peut simplement les parcourir en une seule fois. À moins que vous ne laissiez quelque chose ici, vous feriez bien mieux de faire cette simple requête.
Je l'ai vu « mysql disparu » en traitant avec un grand ensemble de données. Pas sûr dans ce cas mais que se passe-t-il lorsque vous essayez avec des plus petits comme "select column1 from tableName"? Aussi, si vous pouvez mettre un peu de journalisation pour affiner le problème. Peut-être exécuter la première requête et assurez-vous qu'il fonctionne bien alors essayez une deuxième requête au lieu de les faire en un seul coup? –
Votre code n'a pas d'erreurs évidentes. Essayez d'imprimer la première requête et d'arrêter le script. Puis collez ce code SQL dans votre interface de base de données. Est-ce que ça marche? – vassilis
lorsque j'imprime le tableau (après la première boucle while) il imprime bien sans problème mais le problème est dans la mise à jour. Je vais essayer de ne dépanner que la première ligne maintenant –