I can't add database in inbound data from salt method in php

I have a problem as I mentioned this title.
I want to add named tbl_users in my database.
My tables column is user_name, password ans salt.
I have a Hash class.

class Hash {
    public static function create($string, $salt = '') {
        return hash('haval256,4',$string.$salt);

    public static function salt($length = 32) {
            return random_bytes($length);
            return mcrypt_create_iv($length);

    public static function unique() {
        return self::create(uniqid());

I am creating $salt variable for salt column by Hash::salt.
But, when I was added $salt variable value in salt column, it can’t add this value.

$salt  = Hash::salt();
$pass  = Hash::create('123456',$salt);
$query = Connection::getInstance()->getConnection("INSERT INTO tbl_user SET user_name='BlaBlaBla' password='$pass', salt='$salt'");

But, I can add random values (‘2345234′,fgsdffs’ like that).
I can’t solve this. I’m waiting for your help. By the way I am knowing my english is weak. I’am sorry.

You are missing a comma before the password=.

Note I can really upset you by setting my password to ‘xx”; drop table tbl_user;’