【问题标题】:MySQL Update entire table in one queryMySQL 一次查询更新整个表
【发布时间】:2013-01-27 20:53:51
【问题描述】:

我正在尝试加载和更新整个表格的内容。我加载数据没有问题,但它不会更新。有人能告诉我我在做什么错吗:

while($show_table   = mysql_fetch_array($result_table)){
    echo "<tr><td><input type='text' name='table_id' value='" . 
        $show_table["id"] . "'/><input type='text' name='table_date' value='" . $show_table["date"] . "'/>
        </td><td>&euro; <input type='text' name='table_week' value='" . $show_table["week"] . "'/>
        </td><td>&euro; <input type='text' name='table_midweek' value='" . $show_table["midweek"] . "'/>
        </td><td>&euro; <input type='text' name='table_weekend' value='" . $show_table["weekend"] . "'/>
        </td><td><input type='text' name='table_type' value='" . $show_table["type"] . "'/>
        </td><td><input type='text' name='table_information' value='" . $show_table["information"] . "'/></td></tr>";
}

echo "</table>
<p><input type='submit' id='form_submit' name='update_confirm' value='Tarieven bijwerken'></p>
</form>";

if ($_POST['update_confirm'] == 'Tarieven bijwerken') {
    $id = $_POST['table_id'];
    $date = $_POST['table_date'];
    $week = $_POST['table_week'];
    $midweek = $_POST['table_midweek'];
    $weekend = $_POST['table_weekend'];
    $type = $_POST['table_type'];
    $information = $_POST['table_information'];

    $update_table = "UPDATE tarieven SET date='$date', week='$week', midweek='$midweek', weekend='$weekend', type='$type', information='$information' WHERE id='$id';";
    $confirm_table  = mysql_query($update_table);

} else {
}

【问题讨论】:

  • 您是否尝试打印查询?打印后检查查询是什么,并尝试在 mysql admin SQL 提示符中运行它。任何特定错误都会在那里突出显示!尝试添加更多详细信息!
  • 您是否收到任何错误?您确定 update_confirm=='Tarieven bijwerken' 吗?什么是表结构?你需要更具体
  • 你应该阅读sql注入。
  • 没关系,但是由于sql注入,mysql结构plz你应该转义post数据
  • 您是否在表单打开标签中指定了method="post"?

标签: php mysql database phpmyadmin insert-update


【解决方案1】:

您的查询仅更新 1 行,由 UPDATE tarieven SET ... WHERE id='$id' 指定 - 尽管您正在遍历所有记录并显示它们,但更新在循环之外。

【讨论】:

  • 你可以指定 id 为1' OR '1 :-)
  • 确实 - 我引用了原文。也许 PHP/MySQL 问题应该得到一个指向 sql-injection 最佳实践的自动评论......
  • 嗨拉德,我认为你是对的!随着循环中的更新,它按我想要的方式工作!谢谢大家的帮助。 (我想给你看修复后的结果,但我必须等待 8 小时..)
猜你喜欢
  • 2019-08-21
  • 1970-01-01
  • 1970-01-01
  • 2013-06-24
  • 1970-01-01
  • 2010-11-26
  • 2014-04-10
  • 1970-01-01
相关资源
最近更新 更多