Can anybody please tell what is wrong with this code I have been stuck with this for hours

`$stmt = $connection->getDb()->prepare("INSERT INTO ".$table." ({$table_keys})"." VALUES({$marks})") or die($connection->getDb()->error);
    
   
$stmt->bind_param('$bind_char',$table_values) or die($connection->getDb()->error); 

$result = $stmt->execute() or die($connection->getDb()->error);
    
if(!$result){echo"problem";}else{echo"saved";} 

---The error that I am getting---
You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near '@test.com,test) VALUES(test_user,test@test.com,test)' at line 1

Thanks 

From the looks of it, the values like test_user, etc should be written as strings, like

VALUES('test_user','test@test.com','test')

That’s the first thing that comes to my mind. If this does not work, would you please post the full SQL that yu are trying to execute?

I do not know if you proper escaped the values of $marks values.

you should showing us $marks and $table_keys content to support you.

PS Be careful because it looks like a potential sql injection.