Erreur fatale : mysqli_SQL_exception non intercepté : vous avez une erreur dans votre syntaxe SQL ; vérifiez le manuel qui correspond à la version de votre serveur mariadb pour connaître la bonne syntaxe à utiliser

la programmation


Mon erreur lorsque j’essaye de changer le nom :
Erreur fatale : mysqli_sql_exception non interceptée : vous avez une erreur dans votre syntaxe SQL ; consultez le manuel qui correspond à la version de votre serveur MariaDB pour connaître la bonne syntaxe à utiliser près de « WHERE userId = 2 » à la ligne 1 dans C:\xampp\htdocs\login2\includes\functions.inc.php:148 Trace de pile : #0 C:\xampp\htdocs\login2\includes\functions.inc.php(148) : mysqli->query(‘UPDATE users2 S…’) #1 C:\xampp\htdocs\login2\includes\editfac.inc .php(23) : updateFacName(Object(mysqli), ‘2’, ‘Min, Shan’) #2 {main} lancé dans C:\xampp\htdocs\login2\includes\functions.inc.php à la ligne 148

Mon erreur lorsque j’essaie de changer le nom d’utilisateur :
Erreur fatale : mysqli_sql_exception : colonne inconnue “shan” dans la “liste de champs” dans C:\xampp\htdocs\login2\includes\functions.inc.php:167 Trace de pile : #0 C:\xampp\htdocs\login2\includes \functions.inc.php(167) : mysqli->query(‘UPDATE users2 S…’) #1 C:\xampp\htdocs\login2\includes\editfac.inc.php(26) : updateUsername(Object( mysqli), ‘1’, ‘shan’) #2 {main} lancé dans C:\xampp\htdocs\login2\includes\functions.inc.php à la ligne 167

Mon code dans include/function.inc.php :

PHP
<?php
function emptyInputEditFac($facid, $name, $username) {
	$result;

	if (empty($facid) && empty($name) && empty($username)) {
		$result = true;
	}
	else {
		$result = false;
	}
	return $result;
}

function updateFacId($conn, $userid, $facid) {
	$sql = "UPDATE users2 SET facId = $facid WHERE userId = $userid;";
	
	if ($conn -> query($sql) === TRUE) {
		echo "Record updated successfully";
		
		header("location: ../faculty.php");
		exit();
	}

	else {
		phpalert("Error updating record: " . $conn->error);

		header("location: ../faculty.php");
		exit();
	}

}

function updateFacName($conn, $userid, $name) {
	$sql = "UPDATE users2 SET name = $name WHERE userId = $userid;";
	
	if ($conn -> query($sql) === TRUE) {
		echo "Record updated successfully";
		
		header("location: ../faculty.php");
		exit();
	}

	else {
		echo("Error updating record: " . $conn->error);

		header("location: ../faculty.php");
		exit();
	}

}

function updateUsername($conn, $userid, $username) {
	$sql = "UPDATE users2 SET username = $username WHERE userId = $userid;";
	
	if ($conn -> query($sql) === TRUE) {
		echo "Record updated successfully";
		
		header("location: ../faculty.php");
		exit();
	}

	else {
		phpalert("Error updating record: " . $conn->error);

		header("location: ../faculty.php");
		exit();
	}

}

Mon code dans include/editfac.inc.php :

PHP
<?php

if (isset($_POST['submit'])) {
	
	$userid = $_POST["userid"];
	$facid = $_POST["facid"];
	$name = $_POST["name"];
	$username = $_POST["username"];

	require_once 'dbh.inc.php';
	require_once 'functions.inc.php';

	if (emptyInputEditFac($facid, $name, $username) !== false) {
		header("location: ../faculty.php?change=nochange");
		exit();
	}

	else {
		if (!empty($facid)) {
			updateFacId($conn, $userid, $facid);
		}
		if (!empty($name)) {
			updateFacName($conn, $userid, $name);
		}
		if (!empty($username)) {
			updateUsername($conn, $userid, $username);
		}
		exit();
	}

}
else {
	header("location: ../faculty.php");
	exit();
}

Mon code dans editfac.php :

PHP
<section class = "form-sec">
	<div class = "form-div">
		<form id="editfac-form" action="includes/editfac.inc.php" method="post">
			<?php
				if (isset($_POST['user-id'])) {
					$userId = $_POST['user-id'];
					echo "<input type='hidden' name='userid' value='".$userId."'/>";
				}
			?>
			<input type="number" name="facid" placeholder="Faculty ID Number">
			<input type="text" name="name" placeholder="Lastname, Firstname MI.">
			<input type="text" name="username" placeholder="Username">

			<button type="submit" name="submit">Update</button>
		</form>

	</div>
</section>

La fonction updateFacId() fonctionne correctement pour une raison quelconque.

Ce que j’ai essayé :

J’ai recherché l’erreur dans Google, mais je n’ai pas compris grand-chose.

Solution 1

PHP
C:\xampp\htdocs\login2\includes\editfac.inc.php(23): updateFacName(Object(mysqli), '2', 'Min, Shan') #2 {main} thrown in 

Vous avez besoin de guillemets autour du nom d’utilisateur transmis, en raison de la virgule dans le nom. L’utilisation de requêtes paramétrées correctement éviterait de tels problèmes. Cependant, je soupçonne que “Min, Shan” n’est pas un nom d’utilisateur valide.

コメント

タイトルとURLをコピーしました