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