如何解决此MYSQL PHP更新函数版本错误

时间:2017-08-16 20:31:01

标签: php mysql sql-update

您好目前与Id不匹配,但无法找到为什么它没有收到表ID(例如.0,1,2等),显示页面显示它们正好看着它。表格也可以整理代码吗?所有<?php ?>标签似乎都很混乱。

据我所知,使用mysql 5.5。

错误:

  

无法执行UPDATE权重措施SET 1 =&#39; dszfxc&#39;,2 =   &#39; Kilograms&#39;,10 =&#39; Liter&#39;,11 =&#39; Liter&#39;,12 =&#39; Ton&#39;,13 =&#39; vdd&# 39;,14 =   &#39;巨型&#39; WHERE id = 14.您的SQL语法中有错误;检查   手册,对应右边的MySQL服务器版本   要使用的语法&#39; 1 =&#39; dszfxc&#39;,2 =&#39; Kilograms&#39;,10 =&#39; Liter&#39;,11 =   &#39;升级&#39; 12 =&#39; Ton&#39;,13 =&#39; vdd&#39;,14&#39;在第1行

index.php输入表单

 <div>
       <?php     $result = tablename(weightsmeasures);   ?>
         <form method="post" action="update.php">
          <div class="col-8">
             <?php  while($row = mysqli_fetch_array($result)) { 
             echo "<tr>";
            echo "<td>" . $row['id'] . "</td>"; ?>
                 <td>
                    <input class="form-control" type="text" value="<?php echo $row['WeightorMeasure']; ?>" id="<?php echo $row['id']; ?>" name="<?php echo $row['id']; ?>">
                 </td>
             <?php
             echo "</tr>";  
                 }
             ?>
          </div>
            <input type="submit" value="Update">
         </form>
      </div>

update.php

$id = $_POST['id'];
$sql = "UPDATE weightsmeasures SET";
$fieldValuePairs = array();
foreach($_POST as $key => $value) 
if($key != 'id')
       $fieldValuePairs[] = "$key = '$value'";
$sql .= " ". implode(',', $fieldValuePairs)." WHERE id = $id";

此致

1 个答案:

答案 0 :(得分:0)

在这种情况下,您应该仔细阅读错误消息,然后再次阅读。

它表示您的查询如下所示:

UPDATE weightsmeasures SET 1 = 'dszfxc',
                           2 = 'Kilograms',
                           10 = 'Litre',
                           11 = 'Litre',
                           12 = 'Ton',
                           13 = 'vdd',
                           14 = 'mega' 
 WHERE id = 14

咦?看起来你的foreach语句中的键是数字。为此,他们需要成为列名。

即使你可以让它发挥作用,你也会抓住龙的尾巴从$_POST变量中获取数据而不检查它。使用您最喜欢的搜索引擎查找“小约翰尼droptables。”