Когда PHP взаимодействует с MySQL, это фактически (по сути) два языка, взаимодействующих друг с другом. Это означает, что строка будет обработана первым языком перед отправкой другому. Это также означает, что важно думать с точки зрения принимающего языка
В этом случае:
$q = 'some_name';<br/>
$query = "SELECT * FROM exempel WHERE id = $q";<br/>
вы говорите MySQL
"SELECT * FROM example1 WHERE id = some_name.
В этом случае:
$q = 'some_name';<br/>
$query = "SELECT * FROM exempel WHERE id = '$q'";<br/>
и этот случай:
$q = 'some_name';<br/>
$query = "SELECT * FROM exempel WHERE id = '".$q."'";<br/>
вы говорите MySQL
"SELECT * FROM example1 WHERE id = 'some_name'.
Первый пример должен вызвать ошибку, поскольку some_name не является допустимой частью запроса MySQL (в этом контексте). С другой стороны, следующие два будут работать нормально, потому что MySQL будет искать строку "some_name".