Page 1 sur 1

[Résolu] Test d'intégration de données dans ma base de données

Publié : 23 septembre 2020 à 14:42
par Philippe40
Bonjour,
J'ai une nouvelle aide à vous demander :
Dans une table de ma base de données, j'ai inséré des lignes.

Dans mon programme c# j'envoie des requêtes de la forme :
http://mon site/testexistligne.php?id=34555555 (par exemple)
pour vérifier si la base de données contient cette référence.

mon fichier testexistligne.php contient ceci :

$host='serveur';
$user='user';
$pass='mdp';
$base=basebdd_db3';
\t
$dbh = new PDO('mysql:host='.$host.';dbname='.$base, $user, $pass);\t\t
$query = $dbh->query('SELECT EXISTS (SELECT * FROM wp3_articles WHERE
code_article='.$_GET['id'].') AS membre_exists');

if($query->fetchColumn() != 0)\t{echo "true";}\telse \t {echo "false"; }
\t
\t$dbh = null;

Le programme C# boucle sur une liste d'une centaine de clé pour vérifier si la référence existe dans la base de données, envoie la requête et obtient la réponse vrai ou faux.
Cela fonctionne pour les premières lignes. ensuite, le serveur m'envoie une erreur TIME OUT .

Après chaque requête je réinitialise pourtant ma connexion.

Avez-vous une solution pour ce problème

Merci d'avance
Cordialement
Philippe

[Résolu] Test d'intégration de données dans ma base de données

Publié : 23 septembre 2020 à 15:44
par Elodie
Bonjour,

En cherchant en aveugle sur vos différents sites et en pensant avoir trouvé le script "testexistligne.php" sous un autre nom, je ne vois que 9 requêtes Web hier entre 21:42 et 21:54 sans aucun refus de la part de mes services et pour ce peu de requêtes je ne comprends pas d'où pourrai provenir ce "timeout".

Par contre vous pourriez écrire votre SELECT autrement sans avoir à utiliser de sous requête imbriquée et éviter le * si c'est uniquement pour compter le nombre de retours, en utilisant un prepare PDO afin d'éviter une injection SQL :

Code : Tout sélectionner

SELECT COUNT(code_article) FROM wp3_articles WHERE code_article = :id;
Ça vous permettrait d'éviter de parcourir plusieurs lignes par la suite.

Je viens de regarder à l'instant le service Web et je ne vois aucun LOCK ni WAIT sur vos bases SQL.

Est-ce que le problème est toujours présent ?

[Résolu] Test d'intégration de données dans ma base de données

Publié : 23 septembre 2020 à 17:16
par Philippe40
Merci pour votre réponse.

Le fait que vous ne voyez pas mes scripts est à cause du fait que je teste sur mon environnement de test en local pour voir les log erreurs. c'est beaucoup + facile pour moi.

testexistligne.php est une invention. Le fichier PHP est en réalité testachats.php (mal nommé car il s'agit en fait du fichier articles que je teste).

Je vais essayer votre idée.
Je vous dis si ça marche

Cordialement
Philippe

[Résolu] Test d'intégration de données dans ma base de données

Publié : 25 septembre 2020 à 14:15
par Philippe40
Bonjour,
J'ai suivi vos conseils et utilisé la requête que vous m'avez conseillé.
Le fait d'utiliser une requête préparée semble mieux fonctionner
Merci
Cordialement
Philippe