我'我试图使这个sql更新查询,但我不知道为什么它不'不工作


I'm trying to make this sql Update query but I don't know why it doesn't work

我不明白为什么这个查询不工作…我将查询放入if语句中,并返回一个回显,以查看它是否返回true,结果确实返回了!但是如果我去看看sql表,它还没有更新…有人能帮帮我吗?

这是代码:

$rowpost='';
if(isset($_POST['rowpost'])){
$rowpost  = $_POST['rowpost'];
$rowpost  = implode(' ', $rowpost);
  if(mysql_query("UPDATE prodotti SET vetrina='$rowpost' WHERE id='$_GET['id']'")){
    echo 'rowpost';
  }
}
if(isset($_POST['addrowname'])){
$filename = "showcase.txt";
$contents = file_get_contents($filename);
$newcontent = $contents.' '.$_POST['addrowname'];
fwrite(fopen($filename, 'w'), $newcontent);
if(isset($_POST['chkaddshcs'])){
  $rowpost  = $_POST['addrowname'].' '.$rowpost;
  if(mysql_query("UPDATE prodotti SET vetrina='".$rowpost."' WHERE id='".$_GET['id']."'")){
    echo 'chkaddshcs';
  }
}

它没有给出错误,它说rowpostchkaddshcs但他不更新表…

首先。停止使用mysql_*函数,因为它们已被弃用。使用mysqli_*代替。阅读这个问题作为参考。

此外,您的代码有sql注入的危险。阅读这个问题作为参考。


关于你的具体问题:

这条线

:

mysql_query("UPDATE prodotti SET vetrina='$rowpost' WHERE id='$_GET['id']'")

你必须去掉id周围的单引号,或者加上大括号。

mysql_query("UPDATE prodotti SET vetrina='$rowpost' WHERE id='{$_GET['id']}'")

mysql_query("UPDATE prodotti SET vetrina='$rowpost' WHERE id='$_GET[id]'")