Your error is on this line:
$user_query->bindParam(':semod', "false");
You need to use bindValue
.
$user_query->bindValue(':semod', "false");
bindParam
passes the second argument by reference, so it has to be a variable, not a literal.
Additionally, known values don't need to be bound. You could have just as easily added the literal 'false'
string to your statement query, ie
"INSERT INTO login (email, password, semod, snippet) VALUES (:email, :password, 'false', :snippet)"