Plantage script avec connexion persistante

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : Plantage script avec connexion persistante

par Nagol » 22 juin 2009, 21:49

ca marche niquel, sachant que je suis sous linux, ca répond peut-être à ton problème

par momox » 22 juin 2009, 21:45

Les connexion persistantes sont elles autorisées déjà ?

par Nagol » 22 juin 2009, 21:43

okay, je vais faire ça

par HEP44 » 21 juin 2009, 09:33

Ok. C'est l'occasion donc.
Tu peux tester le script que j'ai posté et me dire si tu rencontres les mêmes plantages ? Il semble que cela ne plante que sous Windows.

par Nagol » 19 juin 2009, 15:56

faudrait que je me teste pdo un jour quand meme, je t'avouerais que je n'ai aucune idée de la résolution de ton probleme du coup :)

Plantage script avec connexion persistante

par HEP44 » 19 juin 2009, 11:37

Bonjour,
Je débute en PHP et je suis bloqué sur le point suivant.
J'ai installé WampServer v2.0h sous windows (mysql5.1.33, php5.2.9-2). J'ai également installé Eclipse et Xdebug. J'espère que ces éléments de contexte sont suffisants.

Je constate que les exceptions ne sont plus levées dès que j'utilise les connexions persistantes. Cela plante mon script.
Le script suivant reproduit le problème.
<?php
/*
CREATE DATABASE Essai;
USE Essai;
CREATE TABLE Essai (
Id int NOT NULL,
PRIMARY KEY (Id)
);
*/
try
{
for($i = 0; $i < 2; $i++)
{
$Parms1=array(PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION,
PDO::ATTR_PERSISTENT => true);
$Parms2=array(':id' => 1);
try
{
$CnxPDO= new PDO('mysql:host=localhost;dbname=Essai', 'root', '', $Parms1);
if (($Insert = $CnxPDO->prepare('insert into Essai(Id) VALUES(:id)')) != false)
{
var_dump($CnxPDO, $Insert);
$Insert->execute($Parms2);
}
}
catch (Exception $E)
{
error_log($E->getMessage());
}
}
}
catch (Exception $E)
{
error_log($E->getMessage());
}
?>
A la première exécution, ce script plante dès la première exception. A la seconde exécution (les id sont déjà en table), il plante sur la seconde exécution.
Sans ATTR_PERSISTENT tout fonctionne normalement.

Merci d'avance pour toutes réponses.