Sql erreur sintaxe
jordane45 Messages postés 30427 Date d'inscription Statut Modérateur Dernière intervention -
Bonjour,
j'ai une erreur avec mon code php pour mettre des donnés dans une base de donnees sql
voici l'erreur : "PDOException: SQLSTATE[42000]: Syntax error or access violation: 1064 You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near 'database(ID,Password) VALUES('c','c')' at line 1 in /home/vol17_1/epizy.com/epiz_32420555/htdocs/test.php:21 Stack trace: #0 /home/vol17_1/epizy.com/epiz_32420555/htdocs/test.php(21): PDO->query('INSERT INTO dat...') #1 {main}"
mon code:
formulaire html:
<!DOCTYPE html>
<html>
<head>
<metacharset="utf-8">
<metaname="viewport"content="width=device-width, initial-scale=1">
<title>test</title>
</head>
<body>
<p><h1>ça fonction</h1>
<h2>(=</h2></p>
<formaction="http://test-1-o.rf.gd/test.php"method="post">
<inputtype="string"name="id"id="id">
<inputtype="string"name="mdp"id="mdp">
<inputtype="submit"name="bouton"id="bouton"></form>
</body>
</html>
code php:
<?php
define('HOST', 'xxxxxxxxxxxxxxzy.com');
define('DB_NAME','xxxxxxxxxx_database');
define('USER','xxxxxxxxxxxx555');
define('PASS','xxxxxxxxxxxby');
try{
$db = new PDO("mysql:host=" . HOST . ";dbname=" . DB_NAME,USER,PASS);
$db->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
$requete = "INSERT INTO database(ID,Password) VALUES('$_POST[id]','$_POST[mdp]')";
$resultat = $db->query($requete);
}catch(PDOException $e){
echo$e;}
?>
aidez-moi je cherche depuis des semaines
Macintosh / Firefox 103.0
1 réponse
-
Bonjour,
La syntaxe complète en sqlserver est
INSERT [INTO] { database_name.schema_name.table_name | schema_name.table_name | table_name } [ ( column_name [ ,...n ] ) ] { VALUES ( { NULL | expression } ) | SELECT <select_criteria> } [ OPTION ( <query_option> [ ,...n ] ) ] [;]et il est rare d'utiliser un nom complet database_name.schema_name.table_name on se contente généralement de table_name
donc ton insert into database est incongru, ce devrait être
INSERT INTO tablename (ID,Password) VALUES ('$_POST[id]','$_POST[mdp]')sauf si ta table s'appelle database, ce qui pourrait être une mauvaise idée si c'est un mot réservé.
PS : pour poster du code sur le forum il faut utiliser l’icône <> de l’éditeur de message. Puis il est très dangereux de laisser tous les identifiants de connexion à une DB en publiant du code.
PS2 : es-tu certain d'avoir une base Micrososft SqlServer, et pas tout simplement un base MySql ???