无法修改数据库中的值

时间:2016-08-23 09:00:44

标签: php

当我尝试使用页面上的表单修改数据库上的值时,它只是给了我成功的消息,但它没有做任何事情。

<?php
include "header.php";
include "conexao.php";
echo "<h1>Pagina para alterar familia</h1><hr>";
$referencia=$_GET['id'];


$sql = "SELECT * ";
        $sql = $sql . " FROM tb_familia ";
        $sql = $sql . " WHERE fa_codigo='".$referencia."'";
        $produtos = $db->query($sql);
        foreach ($produtos as $produto) {
            $referencia = $produto["fa_codigo"];
            $nome = $produto["fa_descricao"];
            //$preco = $produto["pr_preco"];
            $disponivel = $produto["fa_disponivel"];
        }
        echo "<h2>Referencia: ".$referencia."</h2>";
        echo "<h2>Nome: ".$nome."</h2><hr>";

?>

<form action="confirmaAlterarfamilia.php">
Referencia: <input type="text" name="referencia" value="<?php echo         $referencia?>">
Nome: <input type="text" name="nome" value="<?php echo $nome?>">
<button>Alterar</button>
</form>
<p><p>

这是代码中实际尝试修改内容的另一部分。

<?php

include "conexao.php";
$nome=$_GET['nome'];
$referencia=$_GET['referencia'];
$sql="UPDATE tb_familia SET fa_descricao='".$nome;
$sql.= " WHERE fa_codigo='".$referencia."'";
try{
    $comando=$db->prepare($sql);
    $comando->execute();
    echo "<h1>Alterado com sucesso</h1>";
}
catch (PDOException $e){
    echo "A";
}

2 个答案:

答案 0 :(得分:1)

默认情况下,如果你想抓住PDOException,PDO不会抛出异常,你必须这样做:

$db->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);

您还应该更喜欢使用字符串连接的预准备语句:

$sql="UPDATE tb_familia SET fa_descricao=? WHERE fa_codigo=?";
$comando=$db->prepare($sql);
$comando->execute(array($nome,$referencia));

答案 1 :(得分:0)

立即尝试:

$sql="UPDATE tb_familia SET fa_descricao='".$nome."'";
$sql.= " WHERE fa_codigo='".$referencia."'";

你错过了引号