I need help to write information in the Mysql DB, using PHP. I have a string that stores any value, for example 1.279,35, and I need to convert it to float or decimal (10.2). I tried to use the PHP function "str_replace" to convert the comma to a dot, but it is not working. Thanks.
<?php
include_once "conexao.php";
$dados = filter_input_array(INPUT_POST, FILTER_DEFAULT);
if (empty($dados['descricao'])) {
$retorna = ['erro' => true, 'msg' => "<div class='alert alert-danger' role='alert'>Erro, é necessário preencher o campo descricao.</div>"];
} elseif (empty($dados['valor'])) {
$retorna = ['erro' => true, 'msg' => "<div class='alert alert-danger' role='alert'>Erro, é necessário preencher o campo valor.</div>"];
} else {
$valtemp = $dados['valor']);
$valtemp = str_replace(".", "", $valtemp);
$valtemp = str_replace(",", ".", $valtemp);
$dados['valor']) = $valtemp;
$query_peca = "INSERT INTO pecas
(descricao, modelo, nserie, fornecedor,
datacompra, valor, condicao, observacao)
VALUES (:descricao, :modelo, :nserie, :fornecedor,
:datacompra, :valor, :condicao, :observacao)";
$cad_peca = $conn->prepare($query_peca);
$cad_peca->bindParam(':descricao', $dados['descricao']);
$cad_peca->bindParam(':modelo', $dados['modelo']);
$cad_peca->bindParam(':nserie', $dados['nserie']);
$cad_peca->bindParam(':fornecedor', $dados['fornecedor']);
$cad_peca->bindParam(':datacompra', $dados['datacompra']);
$cad_peca->bindParam(':valor', $dados['valor']);
$cad_peca->bindParam(':condicao', $dados['condicao']);
$cad_peca->bindParam(':observacao', $dados['observacao']);
$cad_peca->execute();
if ($cad_peca->rowCount()) {
$retorna = ['erro' => false, 'msg' => "<div class='alert alert-success' role='alert'>Peça cadastrada com sucesso.</div>"];
} else {
$retorna = ['erro' => true, 'msg' => "<div class='alert alert-danger' role='alert'>Erro: peça não cadastrada.</div>"];
}
}
echo json_encode($retorna);