Vu le code suivant:AOP PHP Méthode Prepare tombe en panne alors dans une boucle
// Connect to MySQL up here
$example_query = $database->prepare('SELECT * FROM table2');
if ($example_query === false) die('prepare failed');
$query = $database->prepare('SELECT * FROM table1');
$query->execute();
while ($results = $query->fetch())
{
$example_query = $database->prepare('SELECT * FROM table2');
if ($example_query === false) die('prepare failed'); //it will die here
}
je tente évidemment de préparer des déclarations à SELET tout de table2 deux fois. Le second (celui de la boucle WHILE) échoue toujours et provoque une erreur.
Ceci est seulement sur mon serveur de production, en développement local, je n'ai pas de problèmes donc il doit y avoir une sorte de paramètre quelque part. Ma pensée immédiate est que MySQL a une sorte de paramètre max_connections qui est mis à 1 et une connexion est maintenue ouverte jusqu'à ce que la boucle WHILE est terminée alors quand j'essaie de préparer une nouvelle requête, il est dit "Nope trop déjà connecté "et chie.
Des idées? Oui je sais qu'il n'y a pas besoin de le faire deux fois, dans mon code actuel, il est seulement préparé dans la boucle WHILE, mais comme je l'ai dit qui échoue sur mon serveur de production, après quelques tests, j'ai découvert qu'un une requête SELECT * simple échoue dans la boucle WHILE mais pas en dehors de celle-ci. L'exemple de code que j'ai donné est évidemment très édulcoré pour illustrer le problème.
Je ne comprends pas ce que vous dites. Si vous utilisez prepare() dans la boucle, vous vous trompez. Préparez-vous en dehors de la boucle, exécutez l'intérieur. –