我是PHP和mySql的新手。我试图通过使用PHP和MySQL更新多行。使用PHP和MySQL更新多行
我在更新MySQL数据库中的多行时遇到问题。它只是更新数据库中表的最后一行。例如,用户点击查看产品。该页面将列出当前在数据库中的10个产品。并且用户想要通过点击式方法更新产品信息。完成更新后,用户点击提交。
问题是它只捕获和更新表中最后一个产品的信息。我试图把它放在foreach()函数中。但它不起作用。
请帮忙。我刚刚不到一周就学会了PHP和MySQL。我非常感谢任何帮助。
<?php
include 'dbconn.inc.php';
include 'functions.inc.php';
$sql = "SELECT * FROM products";
$res = $mysqli->query($sql);
while($row = $res->fetch_array(MYSQLI_ASSOC)){
$products($row['id']) = 'id';
}
$id = $mysqli->real_escape_string($_POST['id']);
$weight = $mysqli->real_escape_string($_POST['weight']);
$name = $mysqli->real_escape_string($_POST['name']);
$supplier_id = $mysqli->real_escape_string($_POST['supplier_id']);
$price = $mysqli->real_escape_string($_POST['price']);
$description = $mysqli->real_escape_string($_POST['description']);
foreach($products as $id){
$sql = "UPDATE products
SET
`id` = '$id',
`weight` = '$weight',
`price` = '$price',
`name` = '$name',
`supplier_id` = '$supplier_id',
`description` = '$description'
WHERE `id` = '$id'";
}
你是什么意思它看起来像你曾经试图运行查询 – 2013-05-01 01:45:41
请不要这样逃避。使用[bind_param](http://php.net/manual/en/mysqli-stmt.bind-param.php)和[SQL占位符](http://bobby-tables.com/php)避免严重[SQL注入漏洞](http://bobby-tables.com/)。你在哪里学会这样做? – tadman 2013-05-01 01:50:12
该查询正在运行,但它只更新数据库中的最后一行 – user1754822 2013-05-01 01:52:14