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

touta_touta Messages postés 337 Date d'inscription   Statut Membre Dernière intervention   -  
touta_touta Messages postés 337 Date d'inscription   Statut Membre Dernière intervention   - 16 janv. 2015 à 20:56
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

Pitet Messages postés 2826 Date d'inscription   Statut Membre Dernière intervention   526
 
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
touta_touta Messages postés 337 Date d'inscription   Statut Membre Dernière intervention   6
 
c'est comme j'ai fait :/ ce que vous m'avez ecrit c'est comme j'ai fait
0
touta_touta Messages postés 337 Date d'inscription   Statut Membre Dernière intervention   6
 
ceci est l'erreur afficher lorsque j'ai ajouté un parametre :Erreur SQL !
SELECT count(*) FROM membre WHERE login="hamdi"
0