Mysq-Erro em sua sintaxe SQL

Olá,estou enfrentando o seguinte erro:
Erro ao Cadastrar em up_posts 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 ‘’(titulo, content, data)’ VALUES(Meu titulo, Conteudo do Artigo, 2017:03:12 02:1’ at line 1
Deixo aqui o Código

 <?php
require('iniSis.php');

$conn= mysql_connect(HOST,USER,PASS) or die('Erro ao conectar '.mysql_error());
$dbsa=  mysql_select_db(DBSA) or die('Erro ao selecionar banco '.mysql_error());

/************************
 Funcao de cadastro do banco
 */
function create($tabela,array $datas){
    $fields=implode(", ",  array_keys($datas));
    $values= implode(", ", array_values($datas));
   
    
    $qrCreate= "INSERT INTO {$tabela}($fields) VALUES($values)";
    $stCreate= mysql_query($qrCreate)or die('Erro ao Cadastrar em '.$tabela.' '.mysql_error());
}

$datas = array(
    "titulo" => "Meu titulo",
    "content" => "Conteudo do Artigo",
    "data" => date('Y:m:d H:is')
);

create("up_posts",$datas);
?>

Alguem pode me ajudar? Vlw!

Acrescente aspas simples no values da sua query…

$values= implode("', '", array_values($datas));


$qrCreate= "INSERT INTO {$tabela}($fields) VALUES('$values')";

Mas deixo duas dicas…

1ª: não use mais a api mysql_*, ela está obsoleta e até foi removida da versão 7 do php, logo se você mudar de versão vai tomar fatal error na cabeça…

2ª: use alternativas como mysqli ou pdo, dessa forma você não precisa se preocupar em usar aspas como foi no seu erro acima, além de aumentar a segurança no seu código…

Me ajudou muito, obrigado pelas dicas !!!

1 curtida