IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

PHP & Base de données Discussion :

mysqli génere une erreur interne 500


Sujet :

PHP & Base de données

  1. #1
    Débutant  
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    3 096
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Mai 2005
    Messages : 3 096
    Points : 944
    Points
    944
    Par défaut mysqli génere une erreur interne 500
    Bonjour,

    Je suis en train de créer une application qui nécessite une base mysql.

    Pourcela, j'ai ce code

    Code PHP : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    // sql/db_config.inc.php
    <?php
    $hote = "localhost";
    $user = "user";
    $password = "password";
    $base = "db_c";
    ?>
    Puis ce fichier
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    <?php
     
        include('sql/db_config.inc.php');
     
     
     
     
     
    	$connect = new mysqli($hote,$user,$password,$base) or die('Erreur de connexion '.mysql_error());
    	/*
    	// Check connection
    	if (mysqli_connect_errno())
      	{
      		echo "Failed to connect to MySQL: " . mysqli_connect_error();
      	}
      	*/
     
    ?>
    Le problème qui se pose est lorsque que je décommente
    Code PHP : Sélectionner tout - Visualiser dans une fenêtre à part
    $connect = new mysqli($hote,$user,$password,$base) or die('Erreur de connexion '.mysql_error());
    (Ce qui suit est commenté temporairement)
    je n'ai pas de message d'erreur (pour autant que ce qui suis reste commenté
    Si je le commente, je n'ai pas d'erreur, mais évidement mon application ne fonctionne pas normalement

    Il y a donc bien un problème de configuration au niveau de mysqli

    Server Error
    500 - Internal server error.
    There is a problem with the resource you are looking for, and it cannot be displayed.
    Le second problème, c'est le serveur est géré par un collègue qui apparemment, ne gère pas très bien la configuration d'un serveur web.
    Ce serveur est un Windows. Il a installé PHP; MYSLQ, phpmyadmin, mais il semble qu'il a omis de faire quelque chose pour mysqli fonctionne sur ce serveur.

    Je ne sais pas trop comment l'aider sur Windows. J'ai lu qu'il fallait installer un "binary installer", mais je en sais pas trop quoi lui dire exactement pour terminer le configuration du serveur.

    Auriez-vous des suggestions que je pourrais lui transmettre?
    Pour rappel, le service web est installer sur un WIndows 10 serveur.

    Merci pour vos lumieres.
    Il ne suffit pas de tout savoir. Vouloir et persévérer, c'est déjà presque tout!

  2. #2
    Rédacteur/Modérateur
    Avatar de andry.aime
    Homme Profil pro
    Inscrit en
    Septembre 2007
    Messages
    8 391
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Ile Maurice

    Informations forums :
    Inscription : Septembre 2007
    Messages : 8 391
    Points : 15 059
    Points
    15 059
    Par défaut
    Bonjour,

    Tu ne devrais plus jamais utiliser les fonctions mysql_*.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    $connect = new mysqli($hote,$user,$password,$base);
     
    	// Check connection
    	if (!$connect)
      	{
      		echo "Failed to connect to MySQL: " . mysqli_connect_error();
      	}
    A+.

  3. #3
    Débutant  
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    3 096
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Mai 2005
    Messages : 3 096
    Points : 944
    Points
    944
    Par défaut
    Bonjour,
    Ok mais alors comment faire mieux? et que devrais-je donc utiliser à la place de mysql_* sans tout refaire?


    Actuellement je suis bloqué à ce niveau.
    Le problème c'est que le serveur est gérer par quelqu'un qui ne semble pas trop connaitre.
    Ca semblait fonctionner jusqu'exécute un script qui me faire des "milliers" d'insertions...

    J'ai du mal à débugger mon erruer, car sur ma machine local ca fonction mais pas sur son serveur. Ca fonctionne aussi chez mon hébergeur.

    Alors j'apprécierai si vous pouvez m'aider à dlbugger mon bout de code.

    Par exemple à ce niveau: je fait une inertion dans ma table collections

    Code PHP : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    echo "<h3>Save the collection in collections table: </h3>";
     
     
                $sql_insert ='INSERT into collections (
                        id_collection,
                        collectionid,
                        collection_date,
                        collection_created
                    ) VALUES (
                        "",
                        "'.$collections_tb["collectionid"].'",
                        "'.$collections_tb["collection_date"].'",
                        "'.$collections_tb["collection_created"].'");';
     
     
     
                  print_r($sql_insert);
                try{
     
                    if (!$connect->query($sql_insert) )
                    {
                        echo "<pre>Error collection insertion (Line 189)</pre>";
                        $last_inserted = 0;
                        echo $connect->error;
                    }
                    else
                    {
                        $last_inserted = $connect->insert_id;
     
                    }
                }catch(Exception $e){
                    echo 'Exception recue : ',  $e->getMessage(), "\n";
                }

    le print_r m'affiche ceci:
    INSERT into collections ( id_collection, collectionid, collection_date, collection_created ) VALUES ( "", "11", "2017-10-17 00:00:00", "2018-04-23 12:00:06");
    ce qui correspond bien aux premières valeurs de mon fichier json. (mpn script lit un fichier json et insert le tout dans ma base de donnée)

    Simplement, à ce niveau, mon if return true, donc le message "Error collection (LIne....." s'affiche:

    Code PHP : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    if (!$connect->query($sql_insert) )
                    {
                        echo "<pre>Error collection insertion (Line 189)</pre>";
                        $last_inserted = 0;
                        echo $connect->error;
                    }
                    else
                    {
                        $last_inserted = $connect->insert_id;
     
                    }
    Le echo $connect->error; m'affiche ceci
    Incorrect integer value: '' for column 'id_collection' at row 1
    Je pense donc que l'erreur vient lors de l'insertion de la valeur pour la colonne id_collection. Je suis emprunter car cette colonne est auto-incrémentiel, donc il n'y pas de valeur à définir.
    Et je ne comprends pas pourquoi ca fonction sur mon ordinateur mais pas sur le serveur que mon collègue essaye de bien paramètrer.
    (99% sur que ca fonction chez mon fournisseur web aussi)

    Quels sont vaut suggestions pour otpimiser mon code et surtout quelles modifications devrions nous apporter au serveur, particulièrement concernant mysqli.

    Milles mercis
    Il ne suffit pas de tout savoir. Vouloir et persévérer, c'est déjà presque tout!

  4. #4
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    Si la colonne est autoincrementée, elle n'a pas besoin d'être présente dans la requête d'insertion.
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

Discussions similaires

  1. Réponses: 7
    Dernier message: 11/02/2009, 09h59
  2. Réponses: 0
    Dernier message: 16/12/2008, 13h11
  3. Le serveur a rencontré une erreur interne ()
    Par kh12040 dans le forum Développement Web en Java
    Réponses: 4
    Dernier message: 05/09/2008, 09h11
  4. Erreur interne 500
    Par dj_farfade dans le forum Apache
    Réponses: 1
    Dernier message: 13/07/2008, 19h26
  5. Réponses: 19
    Dernier message: 21/12/2007, 17h27

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo