par
Tango » 07 janv. 2022, 12:51
Bonjour tout le monde,
J'ai un problème sur un projet que je fait j'espère que vous pourrez m'aider

, je vous explique tout ça:
J'ai deux tables contenues dans une base de donnée et j'aimerais copier une adresse mail contenue dans ma première base "user" pour la mettre dans la seconde "booking" , sachant que j'ai recréé une colonne email du même nom que pour la première base.
J'ai donc fait ma requête après m'être connecté à la base, mais j'ai une erreur de syntaxe que je n'arrive pas à élucider
Fatal error: Uncaught PDOException: SQLSTATE[42000]: Syntax error or access violation: 1064 Erreur de syntaxe près de '@hotmail .com)' à la ligne 1 in E:\Site\wamp64\www\V2\verif-form.php on line 70
Voici le code:
Code : Tout sélectionner
<?php
try
{
$bdd = new PDO("mysql:host=localhost;dbname=song", "root", "");
$bdd ->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
}
catch(Exception $e)
{
die("Une érreur a été trouvé : " . $e->getMessage());
}
$bdd->query("SET NAMES UTF8");
if (isset($_GET["s"]) AND $_GET["s"] == "Rechercher")
{
$_GET["terme"] = htmlspecialchars($_GET["terme"]); //pour sécuriser le formulaire contre les failles html
$terme = $_GET["terme"];
$terme = trim($terme); //pour supprimer les espaces dans la requête de l'internaute
$terme = strip_tags($terme); //pour supprimer les balises html dans la requête
}
if (isset($terme))
{
$terme = strtolower($terme);
$select_terme = $bdd->prepare("SELECT Title, Artist, Genre, Album, Year FROM music WHERE Available = 1 AND Title LIKE ? OR Artist LIKE ? OR Year LIKE ? OR Genre LIKE ? OR Album LIKE ?");
$select_terme->execute(array("%".$terme."%", "%".$terme."%", "%".$terme."%", "%".$terme."%", "%".$terme."%"));
}
else
{
$message = "Vous devez entrer votre requete dans la barre de recherche";
}
?>
<!DOCTYPE html>
<html>
<head>
<meta charset = "utf-8" >
<title>Les résultats de recherche</title>
<link rel="stylesheet" href="style2.css">
<body style="background-color:black";>
</head>
<body>
<?php
while($terme_trouve = $select_terme->fetch())
{
echo "<center><div><h2>".$terme_trouve['Title']."</h2><p>".$terme_trouve['Artist']."</p><p>".$terme_trouve['Genre']."</p><p>".$terme_trouve['Album']."</p><p>".$terme_trouve['Year']."</p></center>s";
$Artist = $terme_trouve['Artist'];
$Title = $terme_trouve['Title'];
}
$select_terme->closeCursor();
?>
<center>
<form action = "Ma bibliothèque.php" method = "get">
<input type = "submit" name = "s" value = "Ajouter au panier">
<?php
$Result = $bdd->query ("SELECT * FROM user WHERE `Statut` = '1' ");
$Resultat = $Result->fetch();
$sql = " INSERT INTO booking (Title, Artist, email) VALUES ('$Title','$Artist',".$Resultat['email'].")";
$ajout = $bdd->prepare($sql);
$ajout->execute();
?>
</form>
</center>
<center>
<form action = "page_principale.php" method = "get">
<input type = "submit" name = "s" value = "retour">
</form>
</center>
</body>
</html>
Bonjour tout le monde,
J'ai un problème sur un projet que je fait j'espère que vous pourrez m'aider :P , je vous explique tout ça:
J'ai deux tables contenues dans une base de donnée et j'aimerais copier une adresse mail contenue dans ma première base "user" pour la mettre dans la seconde "booking" , sachant que j'ai recréé une colonne email du même nom que pour la première base.
J'ai donc fait ma requête après m'être connecté à la base, mais j'ai une erreur de syntaxe que je n'arrive pas à élucider
Fatal error: Uncaught PDOException: SQLSTATE[42000]: Syntax error or access violation: 1064 Erreur de syntaxe près de '@hotmail .com)' à la ligne 1 in E:\Site\wamp64\www\V2\verif-form.php on line 70
:|
Voici le code:
[code]
<?php
try
{
$bdd = new PDO("mysql:host=localhost;dbname=song", "root", "");
$bdd ->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
}
catch(Exception $e)
{
die("Une érreur a été trouvé : " . $e->getMessage());
}
$bdd->query("SET NAMES UTF8");
if (isset($_GET["s"]) AND $_GET["s"] == "Rechercher")
{
$_GET["terme"] = htmlspecialchars($_GET["terme"]); //pour sécuriser le formulaire contre les failles html
$terme = $_GET["terme"];
$terme = trim($terme); //pour supprimer les espaces dans la requête de l'internaute
$terme = strip_tags($terme); //pour supprimer les balises html dans la requête
}
if (isset($terme))
{
$terme = strtolower($terme);
$select_terme = $bdd->prepare("SELECT Title, Artist, Genre, Album, Year FROM music WHERE Available = 1 AND Title LIKE ? OR Artist LIKE ? OR Year LIKE ? OR Genre LIKE ? OR Album LIKE ?");
$select_terme->execute(array("%".$terme."%", "%".$terme."%", "%".$terme."%", "%".$terme."%", "%".$terme."%"));
}
else
{
$message = "Vous devez entrer votre requete dans la barre de recherche";
}
?>
<!DOCTYPE html>
<html>
<head>
<meta charset = "utf-8" >
<title>Les résultats de recherche</title>
<link rel="stylesheet" href="style2.css">
<body style="background-color:black";>
</head>
<body>
<?php
while($terme_trouve = $select_terme->fetch())
{
echo "<center><div><h2>".$terme_trouve['Title']."</h2><p>".$terme_trouve['Artist']."</p><p>".$terme_trouve['Genre']."</p><p>".$terme_trouve['Album']."</p><p>".$terme_trouve['Year']."</p></center>s";
$Artist = $terme_trouve['Artist'];
$Title = $terme_trouve['Title'];
}
$select_terme->closeCursor();
?>
<center>
<form action = "Ma bibliothèque.php" method = "get">
<input type = "submit" name = "s" value = "Ajouter au panier">
<?php
$Result = $bdd->query ("SELECT * FROM user WHERE `Statut` = '1' ");
$Resultat = $Result->fetch();
$sql = " INSERT INTO booking (Title, Artist, email) VALUES ('$Title','$Artist',".$Resultat['email'].")";
$ajout = $bdd->prepare($sql);
$ajout->execute();
?>
</form>
</center>
<center>
<form action = "page_principale.php" method = "get">
<input type = "submit" name = "s" value = "retour">
</form>
</center>
</body>
</html>
[/code]