par
RobinHexer » 31 oct. 2022, 15:30
Bonjour, je suis debutant en PHP et je n'arrête pas de tomber sur cette erreur :
Fatal error: Uncaught PDOException: SQLSTATE[HY093]: Invalid parameter number: parameter was not defined in C:\xampp\htdocs\RNR\BDconf.php:48 Stack trace: #0 C:\xampp\htdocs\RNR\BDconf.php(48): PDOStatement->execute() #1 {main} thrown in C:\xampp\htdocs\RNR\BDconf.php on line 48
Est-ce que vous pouvez m'aider ?
Voici mon code :
Code : Tout sélectionner
<?php
$DB_HOST = "localhost";
$DB_USER = "root";
$DB_PASS = "";
try{
$db = new PDO('mysql:host='.$DB_HOST.';charset=utf8mb4',$DB_USER,$DB_PASS);
$db->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
}catch(PDOException $e){
echo $e;
}
Celui ci-dessus ce trouve dans un autre fichier nommé "DBconn.php".
Code : Tout sélectionner
<?php
session_start();
include('DBconn.php');
global $db;
// CURL
$curl = curl_init("filrouge.'uha4point0'/V2/music/groupes");
curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
$groupesinf = curl_exec($curl);
if($groupesinf == false){
var_dump(curl_error($curl));
}else{
$groupesinf = json_decode($groupesinf, true);
}
$curl = curl_init("filrouge.'uha4point0.'/V2/music/albums");
curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
$albumsinfo = curl_exec($curl);
if($albumsinfo == false){
var_dump(curl_error($curl));
}else{
$albumsinfo = json_decode($albumsinfo, true);
}
curl_close($curl);
// SQL
$sqlInit = file_get_contents('RNR.sql');
// reload
if(isset($_POST['reloadDatas'])){
//reset
$request = $db -> prepare($sqlInit);
$request -> execute();
//fill
$Genres = array();
//groupes
foreach($groupesinf as $groupes){
$requestgroupes = $db -> prepare('INSERT INTO groupes (nom, chanteur,origin) VALUES (:nom, :chanteur, :origin);');
$requestgroupes -> bindValue('nom', $groupes['nom']);
$requestgroupes -> bindValue('annee', $groupes['chanteur']);
$requestgroupes -> bindValue('note', $groupes['origin']);
$requestgroupes -> closeCursor();
$requestgroupes -> execute();
//genre
foreach($groupes['Genre'] as $G){
if(!in_array($G, $Genres)){
$requestG = $db -> prepare('INSERT INTO Genres (Genre) VALUES (:Genre);');
$requestG -> bindValue('Genre', $G);
$requestG -> closeCursor();
$requestG -> execute();
array_push($Genres, $G);
}
//GenreGroupes
$requestGenre = $db -> prepare('SELECT id FROM Genres WHERE Genre = :Genre');
$requestGenre -> bindValue('Genre', $G);
$requestGenre -> closeCursor();
$requestGenre -> execute();
$result = $requestGenre -> fetch();
$requestGroupes = $db -> prepare('INSERT INTO GenreGroupes(groupesId, GenreId) VALUES (:groupesId, :GenreId);');
$requestGroupes -> bindValue('groupesId', $groupes['id']);
$requestGroupes -> bindValue('GenreId', $result['id']);
$requestGroupes -> closeCursor();
$requestGroupes -> execute();
}
}
//Albums
foreach($albumsinfo as $Album){
$requestAlbums = $db -> prepare('INSERT INTO Heros (nom,id,GroupesID,pistes,artiste,couverture) VALUES (:nom, :id, :GroupesID, :pistes, :artiste, :couverture);');
$requestAlbums -> bindValue('nom', $Album['nom']);
$requestAlbums -> bindValue('id', $Album['id']);
$requestAlbums -> bindValue('GroupesID', $Album['groupes']);
$requestAlbums -> bindValue('pistes', $Album['pistes']);
$requestAlbums -> bindValue('artiste', $Album['artiste']);
$requestAlbums -> bindValue('couverture', $Album['couverture']);
$requestAlbums -> closeCursor();
$requestAlbums -> execute();
}
echo '<script>alert("reloaded");</script>';
}
// empty
if(isset($_POST['emptyDatas'])){
$request = $db -> prepare($sqlInit);
$request -> execute();
echo '<script>alert("emptyed");</script>';
}
//delete
if(isset($_POST['deleteDatas'])){
$request = $db -> prepare('DROP DATABASE IF EXISTS RNR;');
$request -> execute();
echo '<script>alert("deleted");</script>';
}
?>
<html>
<head>
<meta charset = "utf-8">
<title>OSUML</title>
</head>
<body>
<h1>DB's Pages</h1>
<div class = "content">
<form method = "post">
<input type = "submit" name = "reloadDatas" value = "Reload" class = "reload">
<input type = "submit" name = "emptyDatas" value = "Empty" class = "empty">
<input type = "submit" name = "deleteDatas" value = "Delete" class = "delete">
</form>
</div>
</body>
</html>
Bonjour, je suis debutant en PHP et je n'arrête pas de tomber sur cette erreur :
Fatal error: Uncaught PDOException: SQLSTATE[HY093]: Invalid parameter number: parameter was not defined in C:\xampp\htdocs\RNR\BDconf.php:48 Stack trace: #0 C:\xampp\htdocs\RNR\BDconf.php(48): PDOStatement->execute() #1 {main} thrown in C:\xampp\htdocs\RNR\BDconf.php on line 48
Est-ce que vous pouvez m'aider ?
Voici mon code :
[code]<?php
$DB_HOST = "localhost";
$DB_USER = "root";
$DB_PASS = "";
try{
$db = new PDO('mysql:host='.$DB_HOST.';charset=utf8mb4',$DB_USER,$DB_PASS);
$db->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
}catch(PDOException $e){
echo $e;
}
[/code]
Celui ci-dessus ce trouve dans un autre fichier nommé "DBconn.php".
[code]<?php
session_start();
include('DBconn.php');
global $db;
// CURL
$curl = curl_init("filrouge.'uha4point0'/V2/music/groupes");
curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
$groupesinf = curl_exec($curl);
if($groupesinf == false){
var_dump(curl_error($curl));
}else{
$groupesinf = json_decode($groupesinf, true);
}
$curl = curl_init("filrouge.'uha4point0.'/V2/music/albums");
curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
$albumsinfo = curl_exec($curl);
if($albumsinfo == false){
var_dump(curl_error($curl));
}else{
$albumsinfo = json_decode($albumsinfo, true);
}
curl_close($curl);
// SQL
$sqlInit = file_get_contents('RNR.sql');
// reload
if(isset($_POST['reloadDatas'])){
//reset
$request = $db -> prepare($sqlInit);
$request -> execute();
//fill
$Genres = array();
//groupes
foreach($groupesinf as $groupes){
$requestgroupes = $db -> prepare('INSERT INTO groupes (nom, chanteur,origin) VALUES (:nom, :chanteur, :origin);');
$requestgroupes -> bindValue('nom', $groupes['nom']);
$requestgroupes -> bindValue('annee', $groupes['chanteur']);
$requestgroupes -> bindValue('note', $groupes['origin']);
$requestgroupes -> closeCursor();
$requestgroupes -> execute();
//genre
foreach($groupes['Genre'] as $G){
if(!in_array($G, $Genres)){
$requestG = $db -> prepare('INSERT INTO Genres (Genre) VALUES (:Genre);');
$requestG -> bindValue('Genre', $G);
$requestG -> closeCursor();
$requestG -> execute();
array_push($Genres, $G);
}
//GenreGroupes
$requestGenre = $db -> prepare('SELECT id FROM Genres WHERE Genre = :Genre');
$requestGenre -> bindValue('Genre', $G);
$requestGenre -> closeCursor();
$requestGenre -> execute();
$result = $requestGenre -> fetch();
$requestGroupes = $db -> prepare('INSERT INTO GenreGroupes(groupesId, GenreId) VALUES (:groupesId, :GenreId);');
$requestGroupes -> bindValue('groupesId', $groupes['id']);
$requestGroupes -> bindValue('GenreId', $result['id']);
$requestGroupes -> closeCursor();
$requestGroupes -> execute();
}
}
//Albums
foreach($albumsinfo as $Album){
$requestAlbums = $db -> prepare('INSERT INTO Heros (nom,id,GroupesID,pistes,artiste,couverture) VALUES (:nom, :id, :GroupesID, :pistes, :artiste, :couverture);');
$requestAlbums -> bindValue('nom', $Album['nom']);
$requestAlbums -> bindValue('id', $Album['id']);
$requestAlbums -> bindValue('GroupesID', $Album['groupes']);
$requestAlbums -> bindValue('pistes', $Album['pistes']);
$requestAlbums -> bindValue('artiste', $Album['artiste']);
$requestAlbums -> bindValue('couverture', $Album['couverture']);
$requestAlbums -> closeCursor();
$requestAlbums -> execute();
}
echo '<script>alert("reloaded");</script>';
}
// empty
if(isset($_POST['emptyDatas'])){
$request = $db -> prepare($sqlInit);
$request -> execute();
echo '<script>alert("emptyed");</script>';
}
//delete
if(isset($_POST['deleteDatas'])){
$request = $db -> prepare('DROP DATABASE IF EXISTS RNR;');
$request -> execute();
echo '<script>alert("deleted");</script>';
}
?>
<html>
<head>
<meta charset = "utf-8">
<title>OSUML</title>
</head>
<body>
<h1>DB's Pages</h1>
<div class = "content">
<form method = "post">
<input type = "submit" name = "reloadDatas" value = "Reload" class = "reload">
<input type = "submit" name = "emptyDatas" value = "Empty" class = "empty">
<input type = "submit" name = "deleteDatas" value = "Delete" class = "delete">
</form>
</div>
</body>
</html>[/code]