Sql erreur sintaxe
jordane45 Messages postés 38486 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
- Sql erreur sintaxe
- Erreur 0x80070643 - Accueil - Windows
- J'aime par erreur facebook notification - Forum Facebook
- Code erreur f3500-31 ✓ - Forum Bbox Bouygues
- Iptv erreur de lecture - Forum TV & Vidéo
- Comment recuperer whatsapp supprimé par erreur - Guide
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 ???
Bonjour,
Sujet déplacé .
Elle concerne mariaDb (donc mysql) et non SqlServer.
Ma table s’appelle effectivement database
et je crois que c’est une base mysql
Attention, certains "mots" sont "réservés.
Il vaut mieux éviter d'utiliser pour le nom de la base, des tables, des champs .. des mots tels que : database, datatable, order, group, use ...
Donc recréé une nouvelle base avec un "meilleur" nom .. et réessaies..