您好目前得到与Id不匹配,但无法找到为什么它没有收到表id(例如0,1,2等),显示页面显示他们好好看着它看着。也可以整理代码明智的表?似乎与所有<?php ?>
标签混乱。如何解决这个MYSQL PHP更新函数版本错误
尽我所知,使用mysql 5.5。
错误:
Could not able to execute UPDATE weightsmeasures SET 1 = 'dszfxc',2 = 'Kilograms',10 = 'Litre',11 = 'Litre',12 = 'Ton',13 = 'vdd',14 = 'mega' WHERE id = 14. You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '1 = 'dszfxc',2 = 'Kilograms',10 = 'Litre',11 = 'Litre',12 = 'Ton',13 = 'vdd',14 ' at line 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";
问候
**警告**:使用'mysqli'时,您应该使用[参数化查询](http://php.net/manual/en/mysqli.quickstart.prepared-statements.php)和['bind_param' ](http://php.net/manual/en/mysqli-stmt.bind-param.php)将用户数据添加到您的查询。 **不要**使用字符串插值或连接来完成此操作,因为您创建了严重的[SQL注入漏洞](http://bobby-tables.com/)。 **不要**将'$ _POST','$ _GET'或**任何**用户数据直接放入查询中,如果有人试图利用您的错误,这可能会非常有害。 – tadman
注意:'mysqli'的面向对象的接口明显较少,使得代码更易于阅读和审计,并且不容易与陈旧的'mysql_query'接口混淆。在你过于投入程序风格之前,它是值得转换的。例如:'$ db = new mysqli(...)'和'$ db-> prepare(“...”)存在的过程接口是PHP4时代的一个工件,当mysqli API被引入时不应该用于新代码。 – tadman