как исправить pg_query (): ошибка запроса ОШИБКА: синтаксическая ошибка в или около при вставке данных с использованием php - PullRequest
0 голосов
/ 11 января 2020

У меня есть скрипт, который должен вставлять имя пользователя, адрес электронной почты и comment_value, которые являются varchar, в таблицу с именем пользователя, используя Postgres. При нажатии на кнопку «Отправить» я получил эту ошибку:

Предупреждение: pg_query (): Запрос не выполнен: ERREUR: синтаксис ошибки для пользователя «ЛИНИЯ» 1: ВСТАВИТЬ INTO пользователя (имя пользователя, адрес электронной почты) , comment_value) VALUES (^ in C: \ xampp \ htdocs \ tourist_admin \ contact \ commentaire. php в строке 14

Примечание: есть четвертый атрибут с именем admin_confirmation, который может быть нулевым и будет завершено администратором во время редактирования, поэтому я не включил его в запрос вставки.

Мой код;

<?php
	
	$db = pg_connect( "host = localhost port = 5432  dbname = essaouira_tourisme user = postgres password = 0000");

	if(isset($_POST['submit'])){
		$username = $_POST['username'];
		$email = $_POST['email'];
		$comment_value = $_POST['comment_value'];

		if ($username && $email && $comment_value) {

			$query = "INSERT INTO user(username,email,comment_value) VALUES(
			'".$username."','".$email."','".$comment_value."')";
			$result = pg_query($db,$query);

			if ($result) {
				echo "<h2 color = 'red'>Votre commentaire a été enregistré avec succès</h2>";
			}

		}
		else{
			echo "veuillez remplir tous les champs";
		}

	}
	?>
<html>
   <head>
	<meta charset="UTF-8">
	<title>Contact Form Design</title>
	<link rel="stylesheet" href="style.css">
 </head>
<body>
	<div class="contact-title">
		<h2>vos commentaires nous seront utiles</h2>
		<h1>Donnez vos avis</h1>
	</div>
	<div class="contact-form">
		<form id="contact-form" method="post" action="commentaire.php">
			<input name="username" type="text" class="form-control" placeholder="votre pseudo" required><br>

			<input name="email" type="email" class="form-control" placeholder="votre courriel" required><br>

			<textarea name="comment_value" class="form-control" cols="30" rows="5" placeholder="votre commentaire ici" required></textarea><br>

			<input type="submit" class="form-control submit"  name= "submit" value="ENVOYER">
		</form>
	</div>
	
</body>
</html>
	

1 Ответ

1 голос
/ 11 января 2020

user - зарезервированное слово. Чтобы использовать таблицу с именем пользователя, вам нужно будет использовать галочки вокруг имени таблицы.

$query = "INSERT INTO `user` (username,email,comment_value) VALUES(
        '".$username."','".$email."','".$comment_value."')";
...