Warning: mysqli_select_db() expects parameter 1 to
Résolu
garrix_du77
Messages postés
52
Date d'inscription
Statut
Membre
Dernière intervention
-
jordane45 Messages postés 38486 Date d'inscription Statut Modérateur Dernière intervention -
jordane45 Messages postés 38486 Date d'inscription Statut Modérateur Dernière intervention -
Bonjour je vous passe mon code PHP d'où je sais pas l'erreur :
message d'erreur :
Warning: mysqli_select_db() expects parameter 1 to be mysqli
merci bien de m'aider !
c'est pour une importation d'un fichier csv vers ma Base de donnés
<?php
extract(filter_input_array(INPUT_POST));
$fichier = $_FILES ["file"]["name"];
if ($fichier){ // ouverture du fichier temporaire
$fp = fopen($_FILES["file"]["tmp_name"], "r");
}
else {// fichier inconnu ?>
<p align="center" >- importation echouee -</p>
<p align="center" >- <B> désole mais vous n'avez pas spécifié de chemin valide .. </B> </p>
<?php exit ();}
// declaration de la variable "cpt" qui permettera de compter le nombre de d'enregistrement réalisé
$cpt = 0; ?>
<p align="center">- Importation réussie -</p>
<?php //importation
while (!feof($fp)) {
$ligne = fgets ($fp,4096);
// on crée un tableau des élements séparés par des points virgules
$liste = explode(";", $ligne);
$table = filter_input(INPUT_POST, 'file');
// premier élement
$liste[0] = (isset($liste[0]) ) ? $liste[0] : null;
$liste[1] = (isset($liste[1]) ) ? $liste[1] : null;
$liste[2] = (isset($liste[2]) ) ? $liste[2] : null;
$liste[3] = (isset($liste[3]) ) ? $liste[3] : null;
$champ1=$liste[0];
$champ2=$liste[1];
$champ3=$liste[2];
$champ4=$liste[3];
if ($champ1!='')
{
$cpt++;
$db = new PDO('mysql:host=localhost;dbname=projet;charset=utf8','root','');
$db_select= mysqli_select_db($db,"projet");
if (!$db_select)
{
die("Data Base Failed" . mysql_error());
}
$sql =("INSERT INTO test (id , type , pourcentage ,commentaire, date) VALUES ('','$champ1','$champ2','$champ3','$champ4')");
$result = $db-> query($sql);
} }
// fermeture du fichier
fclose ($fp);
?>
<h2> nombre de valeurs nouvellement enregistrees : </h2> <b> <?php echo $cpt; ?> </b>
message d'erreur :
Warning: mysqli_select_db() expects parameter 1 to be mysqli
merci bien de m'aider !
c'est pour une importation d'un fichier csv vers ma Base de donnés
A voir également:
- Mysqli_select_db() expects parameter 1 to be mysqli
- Warning zone telechargement - Accueil - Outils
- Téléchargement et streaming illégal : voici les adresses des sites pirates que les FAI vont bloquer - Accueil - Services en ligne
- Cpu fan fail warning control - Forum Matériel & Système
- Symbole warning word ✓ - Forum Word
- Quota warning free - Guide
2 réponses
Bonjour,
Erreur facile à trouver.....
Que vient faire une instruction mysqli ici .... alors que tu as fais la connexion en PDO ??
Idem pour la ligne
mysql_error..... alors que tu es en PDO.... Non !
De plus, en PDO, merci d'appliquer ceci :
https://forums.commentcamarche.net/forum/affich-37584941-php-pdo-gerer-les-erreurs
ca t'évitera de nombreux problèmes.
Erreur facile à trouver.....
$db = new PDO('
$db_select= mysqli_select_db
Que vient faire une instruction mysqli ici .... alors que tu as fais la connexion en PDO ??
Idem pour la ligne
die("Data Base Failed" . mysql_error())
mysql_error..... alors que tu es en PDO.... Non !
De plus, en PDO, merci d'appliquer ceci :
https://forums.commentcamarche.net/forum/affich-37584941-php-pdo-gerer-les-erreurs
ca t'évitera de nombreux problèmes.
<?php
extract(filter_input_array(INPUT_POST));
$fichier = $_FILES ["file"]["name"];
if ($fichier){ // ouverture du fichier temporaire
$fp = fopen($_FILES["file"]["tmp_name"], "r");
}
else {// fichier inconnu ?>
<p align="center" >- importation echouee -</p>
<p align="center" >- <B> désole mais vous n'avez pas spécifié de chemin valide .. </B> </p>
<?php exit ();}
// declaration de la variable "cpt" qui permettera de compter le nombre de d'enregistrement réalisé
$cpt = 0; ?>
<p align="center">- Importation réussie -</p>
<?php //importation
while (!feof($fp)) {
$ligne = fgets ($fp,4096);
// on crée un tableau des élements séparés par des points virgules
$liste = explode(";", $ligne);
$table = filter_input(INPUT_POST, 'file');
// premier élement
$liste[0] = (isset($liste[0]) ) ? $liste[0] : null;
$liste[1] = (isset($liste[1]) ) ? $liste[1] : null;
$liste[2] = (isset($liste[2]) ) ? $liste[2] : null;
$liste[3] = (isset($liste[3]) ) ? $liste[3] : null;
$champ1=$liste[0];
$champ2=$liste[1];
$champ3=$liste[2];
$champ4=$liste[3];
if ($champ1!='')
{
$cpt++;
// essaie avec la Function PDO
$db = new PDO('mysql:host=localhost;dbname=projet;charset=utf8','root','');
// Activation des erreurs PDO
$db->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
// mode de fetch par défaut : FETCH_ASSOC / FETCH_OBJ / FETCH_BOTH
$db->setAttribute(PDO::ATTR_DEFAULT_FETCH_MODE, PDO::FETCH_ASSOC);
// fin de La function PDO
$sql =("INSERT INTO test (id , type , pourcentage ,commentaire) VALUES ($champ1','$champ2','$champ3','$champ4')");
$result = $db-> query($sql);
} }
// fermeture du fichier
fclose ($fp);
?>
<h2> nombre de valeurs nouvellement enregistrees : </h2> <b> <?php echo $cpt; ?> </b>
Fatal error: Uncaught exception 'PDOException' with message 'SQLSTATE[42000]: Syntax error or access violation: 1064 You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '',steel,'john','commentaire')' at line 1' in C:\EasyPHP-Devserver-17\eds-www\import.php:48 Stack trace: #0 C:\EasyPHP-Devserver-17\eds-www\import.php(48): PDO->query('INSERT INTO tes...') #1 {main} thrown in C:\EasyPHP-Devserver-17\eds-www\import.php on line 48
Dis voir.... j'ai deux questions essentielles qui me taraudent suite à nos précédents échanges......
Sais tu lire ?
Sais tu faire des copier/coller ?
Car bon... je t'ai donné à plusieurs reprises un lien concernant la façon de poster ton code sur le fourm.... et visiblement tu ne l'a pas lu ou ne l'a pas compris. Pourtant il est simple à comprendre.... Donc j'aimerai bien comprendre ce qui te bloque....
Et puis.. pour le PDO, dans le tuto il est clairement indiqué qu'il faut utiliser des blocs TRY/CATCH ... qu'en as tu fais ????
Pour finir... il suffit de voir le message d'erreur... de regarder à la ligne indiquée par l'erreur (ou à la ligne précédente)... et de te rendre compte de l'erreur dans ta requête SQL....
Un indice.. l'erreur se trouve dans :
Je te laisse chercher... il n'y a que 12 mots... ça devrait aller
Sais tu lire ?
Sais tu faire des copier/coller ?
Car bon... je t'ai donné à plusieurs reprises un lien concernant la façon de poster ton code sur le fourm.... et visiblement tu ne l'a pas lu ou ne l'a pas compris. Pourtant il est simple à comprendre.... Donc j'aimerai bien comprendre ce qui te bloque....
Et puis.. pour le PDO, dans le tuto il est clairement indiqué qu'il faut utiliser des blocs TRY/CATCH ... qu'en as tu fais ????
Pour finir... il suffit de voir le message d'erreur... de regarder à la ligne indiquée par l'erreur (ou à la ligne précédente)... et de te rendre compte de l'erreur dans ta requête SQL....
Un indice.. l'erreur se trouve dans :
INSERT INTO test (id , type , pourcentage ,commentaire) VALUES ($champ1','$champ2','$champ3','$champ4')
Je te laisse chercher... il n'y a que 12 mots... ça devrait aller
lorsqu'on te donne les réponses et que tu n'es pas capable de les appliquer..... ce n'est pas de notre faute quand même....
Si tu as réussi.. c'est le principal.... grâce à ton raisonnement... pourquoi pas... mais dis toi que tu aurais appliquer ce qu'on t'indique depuis le début, il n'aurait pas fallut autant de temps pour que ton code fonctionne ... et surtout éviter de me faire perdre mon temps ( j’appelle ça comme ça lorsque les gens réagissent comme tu le fais .... )
Bref... tu peux donc placer cette discussion en résolue.
Bonne continuation.
Si tu as réussi.. c'est le principal.... grâce à ton raisonnement... pourquoi pas... mais dis toi que tu aurais appliquer ce qu'on t'indique depuis le début, il n'aurait pas fallut autant de temps pour que ton code fonctionne ... et surtout éviter de me faire perdre mon temps ( j’appelle ça comme ça lorsque les gens réagissent comme tu le fais .... )
Bref... tu peux donc placer cette discussion en résolue.
Bonne continuation.
1 - Je ne suis pas ton "ami"
2 - Tu n'es pas un client .... sinon pense à m'envoyer de l'argent !
3 - Il n'y a aucun "travail" ici... tout comme les utilisateurs de ce forum.. je suis bénévole. J'accorde de mon temps libre pour aider les internautes qui rencontrent des soucis..... à condition qu'ils le veuillent vraiment et fassent un minimum d'efforts...
Bref, je place cette discussion en résolue.
Bonne journée.
2 - Tu n'es pas un client .... sinon pense à m'envoyer de l'argent !
3 - Il n'y a aucun "travail" ici... tout comme les utilisateurs de ce forum.. je suis bénévole. J'accorde de mon temps libre pour aider les internautes qui rencontrent des soucis..... à condition qu'ils le veuillent vraiment et fassent un minimum d'efforts...
Bref, je place cette discussion en résolue.
Bonne journée.
Explications disponibles ici : https://codes-sources.commentcamarche.net/faq/11288-les-balises-de-code