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 :

Liaison entre php et sqlserver sur un serveur distant [SQL-Server]


Sujet :

PHP & Base de données

  1. #1
    Membre éprouvé
    Homme Profil pro
    Analyse système
    Inscrit en
    Juin 2013
    Messages
    971
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pas de Calais (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Analyse système
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Juin 2013
    Messages : 971
    Par défaut Liaison entre php et sqlserver sur un serveur distant
    Bonjour
    je rencontre une difficulté pour faire un simple select dans mon script php.
    Celui ci se trouve sur mon serveurweb que je nommerais serveurWeb. Ma base de données se trouve sur un autre serveur "ServeurBdd".

    Voici une partie de mon script php :

    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
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
      <table>
            <tr>
                <td>Afficher les données pour :</td>
                <td>
                    <form method="POST" action="">
                        <select name="mois">
                            <option value="2024-09">Septembre 2024</option>
                            <option value="2024-10">Octobre 2024</option>
                            <option value="2024-11" selected>Novembre 2024</option>
                        </select>
                        <button type="submit" class="btn">Voir</button>
                    </form>
                </td>
            </tr>
        </table>
     
    ........
    .......
    <!-- Tableau qui sera affiché après avoir cliqué sur "Voir" -->
        <div id="tableauContainer">
            <?php
     
     
            if ($_SERVER["REQUEST_METHOD"] == "POST" && isset($_POST['mois'])) {
                $mois = $_POST['mois']; // Récupérer le mois sélectionné
     
                // Connexion à la base de données
                $serverName = "ServeurBdd";
                $connectionOptions = array(
                    "Database" => "mabdd",
    				"Encrypt" => false, // Désactive le chiffrement SSL
                    "Uid" => "user",
                    "PWD" => "xxxxxxx"
     
     
                );
     
                $conn = sqlsrv_connect($serverName, $connectionOptions);
                if (!$conn) {
                     echo "La connexion n'a pu être établie.<br />";
    				die( print_r( sqlsrv_errors(), true));
    				die(print_r(sqlsrv_errors(), true));
     
                }
    			else
    			{
    				 echo "Connexion établie.<br />";
    			}
     
                // Requête SQL
                $sql = "SELECT top 10 * FROM [dbo].[matable] WHERE AnneeMois = ?";
                $params = array($mois);
     
                $stmt = sqlsrv_query($conn, $sql, $params);
                if ($stmt === false) {
                    die(print_r(sqlsrv_errors(), true));
                }
     
                // Afficher le tableau
                echo "<h2>Données pour le mois sélectionné ($mois)</h2>";
                echo "<table border='1'>";
                echo "<tr><th>ID</th><th>Nom</th><th>Autre colonne...</th></tr>"; // Modifiez les colonnes selon votre table
                while ($row = sqlsrv_fetch_array($stmt, SQLSRV_FETCH_ASSOC)) {
                    echo "<tr>";
                    echo "<td>" . $row['ID'] . "</td>";
                    echo "<td>" . $row['Nom'] . "</td>";
                    echo "<td>" . $row['AutreColonne'] . "</td>";
                    echo "</tr>";
                }
                echo "</table>";
     
                // Fermer la connexion
                sqlsrv_close($conn);
            }
            ?>
    et voici l'erreur que j'obtients actuellement :

    Array ( [0] => Array ( [0] => 42000 [SQLSTATE] => 42000 [1] => 229 [code] => 229 [2] => [Microsoft][ODBC Driver 18 for SQL Server][SQL Server]L'autorisation SELECT a �t� refus�e sur l'objet 'matable', base de donn�es 'mabdd', sch�ma 'dbo'. [message] => [Microsoft][ODBC Driver 18 for SQL Server][SQL Server]L'autorisation SELECT a �t� refus�e sur l'objet 'matable', base de donn�es 'mabdd', sch�ma 'dbo'. ) )


    La connexion a été établi, ça j'en suis sur, mais il ne me fais pas mon select.
    J'utilise sqlserver express, et pourtant j'ai bien mis tous les droits sur mon utilisateur mais je ne sais pas pourquoi il ne me fais pas mon select.

    Merci pour votre aide.
    Cordialement

  2. #2
    Expert confirmé Avatar de Toufik83
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Janvier 2012
    Messages
    2 498
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : Suisse

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Janvier 2012
    Messages : 2 498
    Par défaut
    Bonjour,

    Le code 42000 de SQLSTATE signifie qu'il y a une erreur de syntaxe ou violation d'accès, regardez cette liste de code et chercher le code 42000 avec CTRL+F.

    L'erreur est que vous exécutez directement une requête d'un "statement" qui utilise des marqueurs anonymes "?" sans avoir la préparer.

    Voilà un exemple qui montre comment préparer une requête.

  3. #3
    Membre éprouvé
    Homme Profil pro
    Analyse système
    Inscrit en
    Juin 2013
    Messages
    971
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pas de Calais (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Analyse système
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Juin 2013
    Messages : 971
    Par défaut
    Bonjour
    merci pour le retour.
    J'ai réussi à effectuer la connexion

    J'ai fais pareil, j'ai eu un message d'erreur, ce que j'ai fais j'ai donner plus de droit à l'utilisateur que j'ai créé, comme nous serons que deux à avoir accès au serveur, tout vas bien et j'ai bien vérifié avec un grant s'il peut faire des selects etc..

    Merci bien , j'ai mis la page en favoris car c'est bien expliqué la liste.

    Bonne journée *

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 6
    Dernier message: 14/03/2014, 11h03
  2. [Librairie] [TELNET] Faire du telnet en PHP sur un serveur distant
    Par kaboume dans le forum Bibliothèques et frameworks
    Réponses: 10
    Dernier message: 10/06/2010, 14h24
  3. Réponses: 12
    Dernier message: 14/08/2006, 12h55
  4. Exécuter un php sur un serveur distant
    Par echataig dans le forum Développement Web en Java
    Réponses: 2
    Dernier message: 12/11/2005, 23h49
  5. [Librairies] Exécution d'un .JAR sur un serveur distant via PHP
    Par kaboume dans le forum Bibliothèques et frameworks
    Réponses: 7
    Dernier message: 09/10/2005, 14h54

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