2016-08-23 80 views
0

當我嘗試使用頁面上的表單修改數據庫上的值時,它只是給了我成功的消息,但它什麼都不做。無法修改數據庫中的值

<?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"; 
} 
+1

打印您的SQL查詢,並在數據庫上運行它,並檢查它是否工作正常? –

+1

您錯過了單引號SET fa_descricao ='「。$ nome。」'「; – donald123

+0

''屬性附加 – RiggsFolly

回答

0

現在就來試試:

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

你錯過了引號

1

默認情況下,PDO不扔你,如果你想趕上做這樣的事情例外PDOException

$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));