Warning: mysqli_select_db() expects parameter 1 to be my..

bonjour ,
je travaille avec php 4 et il y a des fonctions qui sont obsolète telque mysql_escape_string() j'ai cherche sur google j'ai trouve qu'il faut changer a mysqli ou pdo ,j'ai essayé mysql_real_escape mais aussi ça ne marche pas aussi que mysqli_escape_string() il m'affiche ces erreur :

Warning: mysqli_select_db() expects parameter 1 to be mysqli, string given in C:\wamp\www\stage\inscriptioncode.php on line 22

Deprecated: mysql_escape_string(): This function is deprecated; use mysql_real_escape_string() instead. in C:\wamp\www\stage\inscriptioncode.php on line 25

Warning: mysqli_query() expects at least 2 parameters, 1 given in C:\wamp\www\stage\inscriptioncode.php on line 26

et voila la page php qui il contient ses erreurs la :

<?php session_start(); If(!defined('VIEWABLE')) {die('You are not allowed to view this page'); } ?> 

 <h2><span><a href="#">Welcome <?php if(isset($_SESSION["id"]))echo $membername; ?></a></span><a href="deconnection.php">[Deconnexion]</a></h2>
            <p class="info noprint"> </p>

                
          <?php
If (!empty($memberid) && !empty($membername))
{
    die('You are already logged in as '.$membername.'. <a href="deconnection">Deconnection?<a>');
}
// on teste si le visiteur a soumis le formulaire
if (isset($_POST['inscription']) && $_POST['inscription'] == 'Inscription') {
 // on teste l'existence de nos variables. On teste également si elles ne sont pas vides
 if ((isset($_POST['login']) && !empty($_POST['login'])) && (isset($_POST['pass']) && !empty($_POST['pass'])) && (isset($_POST['pass_confirm']) && !empty($_POST['pass_confirm']))) {
 // on teste les deux mots de passe
 if ($_POST['pass'] != $_POST['pass_confirm']) {
  $erreur = 'Les 2 mots de passe sont différents.';
 }
 else {
  $base = mysqli_connect ('localhost', 'root', '');
  mysqli_select_db ('stage', $base);

  // on recherche si ce login est déjà utilisé par un autre membre
  $sql = 'SELECT count(*) FROM membre WHERE login="'.mysql_escape_string($_POST['login']).'"';
  $req = mysqli_query($sql) or die('Erreur SQL !<br />'.$sql.'<br />'.mysql_error());
  $data = mysqli_fetch_array($req);

  if ($data[0] == 0) {
  $sql = 'INSERT INTO membre VALUES("", "'.mysqli_escape_string($_POST['login']).'", "'.mysqli_escape_string(md5($_POST['pass'])).'","")';
  mysqli_query($sql) or die('Erreur SQL !'.$sql.'<br />'.@mysql_error());
if($req)
{
  $idmembre= mysql_insert_id(); 
 
 }
  session_start();
  $_SESSION['login'] = $_POST['login'];
  include_once('deconnection.php');
  header('Location: membre.php');
  exit();
  }
  else {
  $erreur = 'Un membre possède déjà ce login.';
  }
 }
 }
 else {
 $erreur = 'Au moins un des champs est vide.';
 }
}
?>
Inscription à l'espace membre :<br />
<form action="inscription.php" method="post">
Login : <input type="text" name="login" value="<?php if (isset($_POST['login'])) echo htmlentities(trim($_POST['login'])); ?>"><br />
Mot de passe : <input type="password" name="pass" value="<?php if (isset($_POST['pass'])) echo htmlentities(trim($_POST['pass'])); ?>"><br />
Confirmation du mot de passe : <input type="password" name="pass_confirm" value="<?php if (isset($_POST['pass_confirm'])) echo htmlentities(trim($_POST['pass_confirm'])); ?>"><br />
<input type="submit" name="inscription" value="Inscription">
</form>
<?php
if (isset($erreur)) echo '<br />',$erreur;
?>

merci pour votre aide :)

2 réponses

  1. Salut,

    Les messages Deprecated sont effectivement des avertissements.

    Néanmoins les erreurs Warning sont des problèmes d'exécution de votre code :

    - Warning: mysqli_select_db() expects parameter 1 to be mysqli
    -> le premier paramètre de mysqli_select_db() doit être la ressource mysqli, soit :
    mysqli_select_db ($base, 'stage');


    - Warning: mysqli_query() expects at least 2 parameters, 1 given
    -> mysqli_query() attend 2 paramètres, dont le premier est la ressource mysqli :
    $req = mysqli_query($base, $sql);


    https://www.php.net/manual/fr/class.mysqli.php

    Bonne journée
    2
    1. c'est comme j'ai fait :/ ce que vous m'avez ecrit c'est comme j'ai fait
      0
    2. ceci est l'erreur afficher lorsque j'ai ajouté un parametre :Erreur SQL !
      SELECT count(*) FROM membre WHERE login="hamdi"
      0
  2. Bonjour,

    Ce sont des "warning", des avertissements. On vous prévient que ces fonctions vont disparaître. Mais elles ne disparaîtront que si vous upgradez votre serveur et le PHP qui est dessus.

    Sinon, pour le moment, ça fonctionne. Donc, pas de panique.

    A+
    0
    1. bonjour ,
      merci ^_^ mais pouvez vous m'expliquer quoi veut dire "upgradez votre serveur et le PHP qui est dessus. " ?
      0
    2. Upgradez votre serveur php = mettre à jour la version de php
      0
    3. ah ok je veux essayer merci :)
      0
    4. les mêmes erreur :(
      0