Nie działa wstawianie rekordów z uzyciem implode w php

Witam,
Mam pytanie, dlaczego poniższy skrypt nie dodaje mi do bazy. Zwykle dodaje, ale nawet dla pojedynczego pola, też nie chce dodać. Oto kod:
<?php
require_once(‘db/dbc.php’);
if(isset($_POST[‘submit’])){
$username = $_POST[‘username’];
$group = implode(’ , ’ , $_POST[‘group’]);

	//print_r($_POST);	 

	
	if(empty($username)){
		echo "Puste pole nazwy użytkownika!";
	}else{
	 
		    $sql = $db->query("INSERT INTO users_group (username, group) VALUES('$username', '$group')");
		
			 // $sql = "INSERT INTO users_group (username, group) VALUES(?,?)";
				// if($query = $db->prepare($sql)){
				   // $query->bind_param('ss',$username, $group);
				   // $query->execute();
				   // echo "<div class=\"accept\">";
				   // echo " &radic; Pomyślnie dodano nowego użytkownika do kategorii!<br>";
				   // echo "</div>";
				// }else{
				 // echo '<div class="error">Błąd ustawień!</div>';
			// }
		
		
	}
	echo $sql =$db->affected_rows;
	
}


?>

Jak widać, też próbowałem przez bind_param i nie dodaje mi a chciałem zrobić jak na tym filmie, ale z innymi nazwami pól.

Czemu nie dodaje mi do bazy?

Jak wygląda struktura bazy danych? Albo chociaż tej konkretnej tabeli, może na początek wystarczy.

Nie wiem czy to błąd wstawiania czy robisz to celowo, ale czemu tutaj:

require_once(‘db/dbc.php’);
if(isset($_POST[‘submit’])){
$username = $_POST[‘username’];
$group = implode(’,’, $_POST[‘group’]);

używasz na początku stringa kopnięty apostrof, a następnie zamykasz zwykłym? To nie jest poprawnie.

Skoro nie jest poprawnie, to dlaczego na filmie widać, że działa dodawanie a u mnie nie? Struktura tabeli, to trzy pola. id z int, kolejne dwa pola(username i group) to varchar po 100 i 256.

Są 2 rozwiązania:

  1. Brak połączenia z bazą - zła ścieżka lub błąd w kodzie dbc.php. Wpisz zapytanie z palca i sprawdź, czy coś doda.
  2. Błąd w zapytaniu SQL. Wyświetl sobie zapytanie przy pomocy echo i wklej w phpMyAdmin, czy zadziała.

Połączenie z bazą jest poprawne, bo wcześniej dodawałem tylko jedno pole do jednej kolumny. Błąd jest w zmiennej group implode. A taki mam formularz:

Nazwa użytkownika:

Grupy
 <div>Administracja <input type="checkbox" name="group[]" value="administracja"/></div>
 <div>Moderatorzy <input type="checkbox" name="group[]" value="moderatorzy"/></div>
 <div>Testerzy <input type="checkbox" name="group[]" value="testerzy"/></div>
 <div>Default <input type="checkbox" name="group[]" value="default"/></div>
 <input type="submit" name="submit" value="Dodaj użytkownika"/>
 </form>

Zastanawia mnie group w zapytaniu. Używanie słów kluczowych MySQL jako nazw pól jest bardzo ryzykowne.
Zmień: INSERT INTO users_group (username, group) VALUES
Na: INSERT INTO users_group (username, group) VALUES
Edycja: nie widać tego, ale username i group jest w odwróconym apostrofie - znak na przycisku z tyldą (obok 1).
Tutaj podgląd kodu: https://pastebin.com/4qM8xZzu

Niepoprawny jest sposób deklaracji stringów, a nie dodawania.

Podejrzyj w ogóle zapytanie jak wygląda przed wysłaniem i sprawdź błędy, uważam, że one najwięcej Ci powiedzą w czym jest problem. Tutaj masz przykład: http://php.net/manual/pl/mysqli.query.php.
Dodatkowo nazwy kolumn jednak zapisywałbym w odwróconych apostrofach, tak jak radzi @anon78384242

Zanim założyłem temat, to sprawdzałem po Values z tyldami, również z zapisem takim: " ‘.$group.’ " i też nie działa. Najbardziej mi zależy, aby mi dodawało używając bind_param. Tylko dlaczego na filmie, działa dodawanie a u mnie nie? Kiedy użyłem dodawania bez bind param i dałem echo $sql = $db->affected_rows;, to w echo miałem -1.
Zależy aby mając zmieną w tablicy, można dodać 4 kategorie do jednego pola, dlatego mam w każdym inpucie group[ ].
Update!
Problem rozwiązany. Okazało się, że nazwa kolumny group była podświetlona na niebiesko a nie na ciemny zielony (użyłem programu HeidiSQL). I teraz w obu zapytaniach działa dodawanie.